我想在次要模式下以各种面孔突出显示代码。
这是接近我想要的屏幕截图:
有一两件事,我缺少的是具有注释字符#
在
font-lock-comment-face
。这样做的想法是使注释“属于”以纯文本突出显示的轮廓,因此更易于阅读。经常以平常不太显眼的表情发表评论。
这是我使用的代码:
(setq-local font-lock-defaults
'(python-font-lock-keywords
nil nil nil nil
(font-lock-syntactic-face-function
. lpy-font-lock-syntactic-face-function)))
(defun lpy-font-lock-syntactic-face-function (state)
"Return syntactic face given STATE.
Returns 'defalt face for comments that belong to an outline."
(cond ((nth 3 state)
(if (python-info-docstring-p state)
font-lock-doc-face
font-lock-string-face))
((save-excursion
(while (and (> (point) (point-min))
(progn (move-beginning-of-line 0)
(eq (char-after) ?\#))))
(forward-line 1)
(looking-at "#\\*+ "))
'default)
(t
font-lock-comment-face)))
问题是,font-lock-syntactic-face-function
除了它接收到复杂的数据结构state
,具有不同的点状态并返回一张脸之外,我对在其上进行操作的接口一无所知
。
有人可以解释这个界面吗?也许有更好的一个?