如何在 EditPlus 中创建语法文件自定义语法高亮
转自:http://0933.net.cn/past/dispbbs.asp?boardid=11&Id=10205&page=1&star=1
注意:本文从 EditPlus 的帮助文件中翻译而来,由于本人水平有限,译文中可能有错漏之处,仅供参考,推荐查询软件帮助文档中的“语法高亮”部分。欢迎指正!
EditPlus 支持强大的、可自定义的语法高亮功能,内置了 HTML, CSS, PHP, ASP, Perl, C/C++, Java, JavaScript, VBScript 的语法文件,你也可以创建自己的语法文件来支持其它设计语言。
要支持自己的语法类型,你必须创建一个语法文件并把它添加到“参数选择”对话框中的“设置与语法”中。
语法文件是一个扩展名为“.stx”并按预定格式编写的纯文本文件,这种格式非常简单。建议查看用于 JavaScript 的语法文件(js.stx),以它为例来学习创建这种语法文件。
所有语法声明必须以“#”为前缀,具体解释如下:
- #TITLE
- 这里定义语法文件标题,它必须出现在语法文件的首行,否则 EditPlus 将不能正确读取它的信息。
- #DELIMITER
- 指定用于分解关键字的定界符。你不必指定空格和制表符,它们是程序内置的缺省定界符。
- #QUOTATION1
- 指定引用语标记,例如单引号,这里只能定义一个字符。
- #QUOTATION2
- 指定另一种引用语标记,例如双引号,这里只能定义一个字符。
- #CONTINUE_QUOTE
- 这个选项允许不停止引用而将它延续到下一行。定义为“y”时允许跨行引用,定义为“n”时不允许跨行引用,“n”是默认值。
- #LINECOMMENT
- 指定行内注释标记。如果你以“!”作为行内注释符的前缀,那么仅在它位于行首时才会起作用。
- #LINECOMMENT2
- 指定另一种行内注释标记。如果你以“!”作为行内注释符的前缀,那么仅在它位于行首时才会起作用。
- #COMMENTON
- 指定一个块级注释的启始标记。
- #COMMENTOFF
- 指定一个块级注释的结束标记。
- #COMMENTON2
- 指定另一种块级注释的启始标记。
- #COMMENTOFF2
- 指定另一种块级注释的结束标记。
- #ESCAPE
- 指定避让字符,这里只能定义一个字符。
- #CASE
- 指定敏感性。取值为“n”或“n” 默认值为“n”。
- #PREFIX1 - #PREFIX5
- 指定前缀关键字,任何跟随前缀的单词将被视为已经处理的关键字。
- #SUFFIX1 - #SUFFIX5
- 指定后缀关键字,任何在后缀之前的单词将被视为已经处理的关键字。
- #HTML_EMBEDDED
- 如果是像 PHP 这样的 HTML 植入脚本,指定为“y”。可以参考“php.stx”中的用法。
- #SCRIPT_BEGIN
- 指定 HTML 植入脚本的启始标记,仅在“#HTML_EMBEDDED”定义为“y”时发生作用,请参考“php.stx”中的用法。
- #SCRIPT_END
- 指定 HTML 植入脚本的结束标记,仅在“#HTML_EMBEDDED”定义为“y”时发生作用,请参考“php.stx”中的用法。
- #HEREDOC
- 指定一个字符串用于 Perl和 PHP 文件中的 heredoc。例如:#HEREDOC=<<EOF.
- #AUTOCASE
- 如果希望使用关键字自动完成特性,将它定义为“y”。
- #NUMBER_PATTERN
- 'cpp'用于 C/C++数字语法高亮。
- #SPECIAL_STX
- “html”用于 HTML 语法文件,“cpp”用于 C/C++ 语法文件,“perl”用于 Perl 语法文件,留空则可用于其它语法文件。
同其它语言一样,你也可以在语法文件中插入注释,注释行必须以英文的分号“;”启始。如果你希望指定英文分号作为一个关键字,必须以避让字符“^”作为它的前缀。
每个关键字组以#KEYWORD=启始,之后定义该组的描述。关键字清单从下一行开始,如果需要在关键字里包含“#”,必须以避让字符“^”为前缀,像“^#”这样。在这种情况下,“#”标记不应该包含在“#DELIMITER”定义中。你最多可以定义 10 个关键字组。
EditPlus 官方网站上有很多语法文件和相关资源,可以在http://www.editplus.com/files.html下载到。