我只想为 Emacs 创建一个语法高亮次要模式。我有 O'Reilly 的“Writing GNU Emacs Extensions”,但它没有深入细节。是否有关于真实或虚假编程语言突出显示模式的简单教程?
谢谢
定义自定义通用模式可能是最好的起点。您可以像下面的代码片段一样简单地定义一种语言的基本语法突出显示。
(require 'generic-x)
(define-generic-mode
'my-mode ;; name of the mode
'("//") ;; comments delimiter
'("function" "var" "return") ;; some keywords
'(("=" . 'font-lock-operator)
("+" . 'font-lock-operator) ;; some operators
(";" . 'font-lock-builtin)) ;; a built-in
'("\\.myext$") ;; files that trigger this mode
nil ;; any other functions to call
"My custom highlighting mode" ;; doc string
)
它非常适合为晦涩的语言快速定义一些基本的语法突出显示。在某些情况下,我什至将它用于日志文件。
EmacsWiki 的模式教程有更多关于创建主要模式的信息,以防您只想从语法突出显示进行扩展。
您还可能会发现查看这个答案很有用,它有一个指向代码的指针,该代码定义了一个次要模式以突出显示某些关键字 - 但仅限于字符串和注释。
如果您想要的只是亮点,那么次要模式会更好 - 更少的行李。
手册的相关部分是针对函数'font-lock-add-keywords
和变量的font-lock-keywords
。