emacs - 使用语法表在 emacs 模式下的单行和多行注释

标签 emacs elisp syntax-highlighting

我正在尝试为注释写成的语言创建一个 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/

相关文章:

emacs - 在 Emacs 中将 ` 关联到 <S-dead-grave>

emacs - 是否有为自定义命令保留的任何 emacs 组合键?

javascript - 语法荧光笔不检测新行

Python.el 错误处理了我在文档字符串上的 M-q 缩进

emacs - 尝试通过Cygwin上的SSH连接时,Emacs挂起

通过终端 ssh 支持 Emacs 鼠标

python - 如何将 Emacs Flymake 模式用于带有 pyflakes 和 pylint 检查代码的 python?

emacs - Emacs Lisp 中 apply 的正确用法?

css - 防护代码块未正确突出显示

sublimetext2 - Twig 语法高亮显示 sublime 文本