我想只为Emacs创建一个突出显示次要模式的语法。我有O'Reilly的“编写GNU Emacs Extensions”,但它没有深入细节。是否有一个简单的教程,用于真实或伪造的编程语言高亮模式?
谢谢
答案 0 :(得分:22)
定义自定义Generic Mode可能是最好的起点。您可以像下面的代码片段一样为语言定义基本语法高亮显示。
(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
)
很快就为晦涩的语言快速定义了一些基本的语法突出显示。在某些情况下我甚至将它用于日志文件。
答案 1 :(得分:5)
EmacsWiki的Mode tutorial提供了有关创建主要模式的更多信息,以防您只想从语法突出显示扩展。
答案 2 :(得分:3)
你也可能会发现this answer有用,它有一个指向代码的指针,用于定义一个次要模式以突出显示某些关键词 - 但仅限于字符串和注释。
如果你想要的只是亮点,那么次要模式会更好 - 减去行李。
本手册的相关部分适用于功能'font-lock-add-keywords
和变量font-lock-keywords
。