defface该怎么用,我想看看font-lock能不能用他

我试着写defface

(defface ne-keyword-face
  '((t :foreground "blue"
       ;; :background "aquamarine"
       :weight bold
       :underline t
       ))
  "Face for keyword"
  :group 'ne-mode)

我的majormode编写

(define-derived-mode ne-mode fundamental-mode "ne mode"
  (setq-local ne-highlights
	      '(
		;; keywords
		;; ("#.* " . font-lock-keyword-face)
		("#.*" . ne-keyword-face)
		("\\<return\\>" . font-lock-keyword-face)
		;; type
		("\\<int\\>" . font-lock-type-face)
		;; function  PROBLEM here
		("\\w+\(.*\);?" . font-lock-function-name-face)
		;; single line comment
		("/\*.*\*/" . font-lock-comment-face)))
		;; multi line comment

  (setq font-lock-defaults '(ne-highlights)))

这是在测试文件的结果


很可惜,没什么用

ne-keyword-face那一行拿掉的样子


这个defface到底该怎么用?? ps: 哪个:group是干啥用的,能吃吗

把选项分类,如 M-x customize-group magit 只看 magit 的选项。

暂时用不上可以先不写。

你这个 defface 没问题

(message "%s" (propertize "hello" 'face 'ne-keyword-face))

正常。

那是哪里出了问题呢?

1 个赞

要加上这个吧

(defvar ne-keyword-face	'ne-keyword-face)

感谢,嘿嘿