2010-02-10 13 views
5

Al configurar las palabras clave de bloqueo de fuente para un modo GNU/Emacs, ¿es posible resaltar las múltiples expresiones secundarias de una expresión regular con un solo emparejador? Lo que me gustaría hacer es algo a lo largo de las líneas de:Palabras clave de bloqueo de fuente: resaltar la subexpresión múltiple

("\\(foo\\)-\\(bar\\)" '(1 foo-face) '(2 bar-face)) 

lo que sería la sintaxis correcta para algo así - o tengo que dividirlo en dos comparadores distintos?

Respuesta

5

intentar algo como esto:

("\\(foo\\)-\\(bar\\)" (1 foo-face) (2 bar-face)) 

( es decir, el mismo que el suyo, pero sin las comillas adicionales).

Lo digo porque tengo varios bits como este en mis definiciones de font-lock-keywords. Algunos de ellos tienen nil t en el extremo de la segunda, así:

("\\(foo\\)-\\(bar\\)" (1 foo-face) (2 bar-face nil t)) 

que corresponden a los indicadores opcionales OVERRIDE y LAXMATCH y puede ser necesario dependiendo de sus circunstancias precisas.

La documentación para font-lock-keywords habla de esto con cierta profundidad, aunque no siempre es el más simple de seguir: me resulta más fácil simplemente copiar la configuración de trabajo de otra persona, como el valor existente de c-font-lock-keywords-3, por ejemplo.

Cuestiones relacionadas