Je voudrais mettre en évidence le code avec différents visages dans un mode mineur.
Voici une capture d'écran proche de ce que je veux:
Une chose qui me manque est d' avoir les caractères de commentaire #
dans
font-lock-comment-face
. L'idée est d'avoir des commentaires qui "appartiennent" à un plan mis en évidence en texte brut, donc c'est plus facile à lire. Tout en ayant des commentaires réguliers avec leur visage moins proéminent habituel.
Voici le code que j'ai utilisé:
(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)))
Le fait est que je n'ai aucune idée de l'interface sur laquelle
font-lock-syntactic-face-function
opère, à part qu'il reçoit une structure de données complexe state
, a un état de point différent et renvoie un visage.
Quelqu'un pourrait-il expliquer cette interface? Y en a-t-il un meilleur peut-être?
la source