我正在尝试为注释写成的语言创建一个 emacs 语法高亮
;单行注释
;; This comment has
multipline lines ;;
为此,我需要修改语法表中的条目。我发现以下内容非常适合多行评论:
(modify-syntax-entry ?\; ". 1234" sbgl-mode-syntax-table)
下面的代码非常适合单行注释:
(modify-syntax-entry ?\; "< b" sbgl-mode-syntax-table)
(modify-syntax-entry ?\n "> b" sbgl-mode-syntax-table)
有人知道结合这些的方法吗?
最佳答案
如果您可以在每个分号开始单行注释后添加一个空格,那么您可以将其视为注释开始序列之一的第二个字符,然后这是一个对我有用的片段:
(define-derived-mode sbgl-mode prog-mode "sbgl"
(set (make-local-variable 'font-lock-defaults)
'(nil ;; keywords
nil ;; keywords-only
nil ;; case-fold
((?\; . ". 1234b")
(?\n . ">")
(?\ . "- 2")))))
如果没有,那么您总是可以选择在字体化之前通过 syntax-propertize-function
变量(或 font-lock-syntactic-keywords
Emacs24 之前的变量)。
关于emacs - 使用语法表在 emacs 模式下的单行和多行注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15718599/