如何在 Emacs 中突出显示我自己的语法?
How to highlight my own syntax in Emacs?
我正在开发自己的领域特定语言 (DSL),文件扩展名为 .xyz
。
Emacs 不知道如何在 .xyz
文件中突出显示语法,所以我通常打开 typescript-mode
或 json-mode
。但是可用的语法高亮模式对我来说不够好,所以我正在考虑为 Emacs 编辑器编写自己的语法高亮器。有关此任务的任何提示?有什么工具包推荐吗?
或者,我会很高兴能够突出显示常见关键字的任何可用模式,例如 class
、string
、list
、=
符号之前和之后的变量 @
符号、大括号 {}
、方括号 []
、问号 ?
和感叹号 !
。任何现有语言都有类似的语法吗?
我不是色盲,也不挑剔颜色。任何突出显示上述语法的语法高亮器都可以解决我的问题。
如果您只对关键字和注释的简单语法高亮感到满意,可以使用名为 define-generic-mode
的帮助程序,它在 elisp 手册中有记录。
可以在 generic-x.el
随 Emacs 分发的文件中找到一些使用它的示例。
但变量名的高亮不在此范围内。为此,您需要能够使用 semantic
/bovine
解析 DSL,因为特定字符串是否被解释为变量名取决于上下文,而不仅仅是简单的正则表达式匹配。
我正在开发自己的领域特定语言 (DSL),文件扩展名为 .xyz
。
Emacs 不知道如何在 .xyz
文件中突出显示语法,所以我通常打开 typescript-mode
或 json-mode
。但是可用的语法高亮模式对我来说不够好,所以我正在考虑为 Emacs 编辑器编写自己的语法高亮器。有关此任务的任何提示?有什么工具包推荐吗?
或者,我会很高兴能够突出显示常见关键字的任何可用模式,例如 class
、string
、list
、=
符号之前和之后的变量 @
符号、大括号 {}
、方括号 []
、问号 ?
和感叹号 !
。任何现有语言都有类似的语法吗?
我不是色盲,也不挑剔颜色。任何突出显示上述语法的语法高亮器都可以解决我的问题。
如果您只对关键字和注释的简单语法高亮感到满意,可以使用名为 define-generic-mode
的帮助程序,它在 elisp 手册中有记录。
可以在 generic-x.el
随 Emacs 分发的文件中找到一些使用它的示例。
但变量名的高亮不在此范围内。为此,您需要能够使用 semantic
/bovine
解析 DSL,因为特定字符串是否被解释为变量名取决于上下文,而不仅仅是简单的正则表达式匹配。