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
。