我想为python-mode
制作一个派生模式,以添加自定义关键字和颜色。所以我检索了定义关键字面部的代码部分并添加了我自己的关键字。
如果我使用已经存在的脸,它可以正常工作。但我想使用自定义面,因此如果在其他面部的同一时间内它不会改变颜色。 我搜索如何定义一个面并最终得到这个:
(defface printr-face
'((t :foreground "red" :weight bold))
"Face for printr function"
:group 'python-print-color-faces)
我尝试应用它的部分代码(在变量" python-font-lock-keywords"中)看起来像这样:
(,(rx symbol-start (or "printr") symbol-end) . printr-face)
我使用时printr-face
会出现在列表中
M-x list-faces-display
。
但脸部没有应用。 M-x describe-face
将其视为默认值。
我做错了什么?我怎样才能使用我新定义的脸?
答案 0 :(得分:1)
向新关键字添加新面孔时,您还需要添加关键字:
(font-lock-add-keywords
'my-mode
'(("regex1" 1 'my-face1)
("regex2" 1 'my-face2))
1)
答案 1 :(得分:1)
choroba在右边。 我也错过了defface中的一个括号:
(defface printr-face `((t (:foreground "red" :weight bold))) "Face for printr function"
:group 'python-print-color)
(我忘了封装:forground:weight)
然后
(font-lock-add-keywords
'python-print-color-mode
'(("printr" . 'printr)
("printg" . 'printg)))
请注意,我必须使用"。"而不是" 1"使它工作。不确定" 1"应该已经完成了,但它并不适合我。