在 Emacs 中定义语法高亮的界面

在 Emacs 中定义语法高亮的界面

这是在 Emacs 中为注释部分添加语法高亮

font-lock-warning-face我有以下根据中的定义改编的面部定义font-lock.el

; (defface font-lock-warning-face
;   '((t :inherit error))
;   "Font Lock mode face used to highlight warnings."
;   :group 'font-lock-faces)
(defface my-code-section-face
  '((t :inherit font-lock-warning-face))
  "Face used for comment guards")

(defun add-c-syntax-highlighting ()
  (font-lock-add-keywords nil '(
    ("//\\-+" 0 (if t font-lock-warning-face
                  my-code-section-face) prepend))))

当我使用t( font-lock-warning-face) 时,该函数有效。当nil(使用my-code-section-face)时,它不起作用。我只能假设这是我如何定义脸部,但我找不到问题。(使用`vs.'没有有效区别。)

答案1

在我看来你需要引用prepend: 'prepend,并将其移到列表之外:

(font-lock-add-keywords nil '(("//\\-+" 0 whatever)) 'prepend)

对于测试来说,至少要删除所有的东西whatever- 只需使用类似的东西(0 'my-code-section-face t)

像这样:

(font-lock-add-keywords nil '(("//\\-+" (0 'my-code-section-face t))) 'prepend)

并且,通过使用,您可以随时查看您的defface工作是否符合您的要求M-x list-faces-display

相关内容