Me gustaría resaltar el código con varias caras en un modo menor.
Aquí hay una captura de pantalla cercana a lo que quiero:
Una cosa que me falta es tener los caracteres de comentario #
en
font-lock-comment-face
. La idea es tener comentarios que "pertenezcan" a un esquema resaltado como texto sin formato, para que sea más fácil de leer. Si bien tiene comentarios regulares con su habitual cara menos prominente.
Aquí está el código que usé:
(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)))
La cuestión es que no tengo idea de la interfaz en la que
font-lock-syntactic-face-function
opera, aparte de que recibe una estructura de datos compleja state
, tiene un estado de punto diferente y devuelve una cara.
¿Alguien podría explicar esta interfaz? ¿Hay uno mejor tal vez?