Me gustaría comenzar un color de fondo diferente comenzando desde una función hasta el final.
Me gusta esto:
Soy consciente de que puede definir los colores de fondo de algunas caras como funciones y nombres de funciones como foobar
. Pero solo afecta el color de fondo de las palabras function
y foobar
. Me gustaría cambiar el color de fondo de toda la línea donde se encuentran las estadísticas de la función y terminar con ella.
¿Por qué preguntarías? Me resultaría mucho más fácil distinguir qué partes pertenecen a una función.
Entonces, me pregunto si hay una manera práctica de administrar esto en Emacs, ¿hay un paquete Lisp para lograr algo así?
isearch-highlight
yisearch-dehighlight
Respuestas:
Puede usar el resaltado de la biblioteca para resaltar una región utilizando una superposición o propiedades de texto, en particular, la propiedad
face
. Para resaltar el fondo, use una cara que use atributobackground
pero noforeground
.Si usa la propiedad de texto,
face
también puede copiar propiedades de un texto y pegarlas en otro texto. Entonces, si su definición cambia y se hace más grande, puede copiar parte de la parte resaltada y luego pegar su propiedadface
en la parte no resaltada.También puede usar las funciones definidas en la biblioteca para hacer automáticamente (por ejemplo, como un gancho de cambio de búfer o periódicamente, en un temporizador) extender el resaltado de un defun para acomodar los cambios en él.
Si usa una superposición, puede usar los comandos de borrado de resaltado (por ejemplo,
hlt-eraser
) para eliminar solo la última cara con la que resaltó. Arrastre el mouse sobre el texto donde desea eliminar el resaltado.Podrías usar el bloqueo de fuente ordinario. Agregue un patrón
font-lock-keywords
que use una función que reconozca el inicio y el final de su definición. Consulte el manual de Elisp, las palabras clave de personalización del nodo, así como el nodo principal, el modo de bloqueo de fuente y sus otros elementos secundarios.ACTUALIZAR después de tu comentario
Creo que tal vez esté preguntando sobre resaltar no la región, sino las líneas tocadas por la región, y extender el resaltado más allá del final del texto (incluso más allá de los espacios en blanco). ¿Es asi? Si es así, intente esto:
fuente
highlight
biblioteca no funcionó para mí. Solo aplica un fondo sobre dónde está el texto. Cuando finaliza el texto, se detiene con el color de fondo. ¿Cualquier sugerencia?highlight.el
. Si te ayuda, bien.