如何在 Emacs 中突出显示我自己的语法?

How to highlight my own syntax in Emacs?

我正在开发自己的领域特定语言 (DSL),文件扩展名为 .xyz

Emacs 不知道如何在 .xyz 文件中突出显示语法,所以我通常打开 typescript-modejson-mode。但是可用的语法高亮模式对我来说不够好,所以我正在考虑为 Emacs 编辑器编写自己的语法高亮器。有关此任务的任何提示?有什么工具包推荐吗?

或者,我会很高兴能够突出显示常见关键字的任何可用模式,例如 classstringlist= 符号之前和之后的变量 @ 符号、大括号 {}、方括号 []、问号 ? 和感叹号 !。任何现有语言都有类似的语法吗?

我不是色盲,也不挑剔颜色。任何突出显示上述语法的语法高亮器都可以解决我的问题。

如果您只对关键字和注释的简单语法高亮感到满意,可以使用名为 define-generic-mode 的帮助程序,它在 elisp 手册中有记录。

可以在 generic-x.el 随 Emacs 分发的文件中找到一些使用它的示例。

但变量名的高亮不在此范围内。为此,您需要能够使用 semantic/bovine 解析 DSL,因为特定字符串是否被解释为变量名取决于上下文,而不仅仅是简单的正则表达式匹配。