既存のフェイスを使用してフォントロックキーワードを定義すると、文字列「foo」を強調表示できます。
(defconst my-mode-font-lock-keywords
(list
(cons "foo" 'font-lock-type-face)))
(define-derived-mode my-mode fundamental-mode "My mode"
"A demo mode."
(set (make-local-variable 'font-lock-defaults) '(my-mode-font-lock-keywords)))
これは正しく強調表示されます:
ただし、自分の顔を定義した場合:
(defface my-mode-foo-face
'((t :inherit font-lock-preprocessor-face))
"Face for highlighting 'foo'.")
(defconst my-mode-font-lock-keywords
(list
(cons "foo" 'my-mode-foo-face)))
(define-derived-mode my-mode fundamental-mode "My mode"
"A demo mode."
(set (make-local-variable 'font-lock-defaults) '(my-mode-font-lock-keywords)))
ハイライトは適用されません:
font-lock-defaults
自分で定義した顔でどのように使用できますか?
(cons "foo" ''my-mode-foo-face))
も機能しますが、どちらが慣用的であるかはわかりません。