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