¿Hay alguna manera de resaltar (establecer el color de fondo, por ejemplo) el espacio antes de una línea, cuando su sangría no está alineada con el ancho de sangría actual?
Sangría de 4 espacios para, por ejemplo:
fn my_func() {
if foo() {
##bar();
blob();
###fez();
baz();
}
}
donde los #
caracteres representan el fondo que muestra un color diferente, hasta que la sangría se alinea a 4.
Por supuesto, esto solo es útil cuando el código sigue estrictas convenciones de sangría.
Tenga en cuenta que estoy al tanto de las funciones avanzadas de sangría automática de emacs y los complementos de resaltado de sangría, pero preferiría algo menos intrusivo que solo aparece cuando hay un problema. Un poco como resaltar los espacios finales.
indentation
whitespace
highlighting
ideasman42
fuente
fuente
c-indent-defun
corregirá la sangría para usted, lo que podría lograr el resultado deseado.Respuestas:
Usando el bloqueo de fuente ...
fuente
whitespace-trailing
lugar dematch
(format "^ \\{%d\\}*\\( \\{1,%d\\}\\)[^ ]" tab-width (- tab-width 1))
`Esto se puede hacer usando
font-lock-add-keywords
.El siguiente ejemplo muestra que puede habilitar selectivamente esta función en su configuración, para diferentes formatos.
tab-width
.whitespace-trailing
, es posible que desee usarmatch
o cualquier otro color.p.ej:
Entonces esta función se puede llamar para modos específicos: por ejemplo,
Este es un cambio menor a la respuesta de @ politza.
fuente