Por ejemplo, si quiero buscar \<data\>
pero quiero omitir las entradas que aparecen en comentarios de bloques de varias líneas como este:
/*
* Don't match comments containing the term 'data'
*/
No puedo simplemente usar una búsqueda hacia atrás negativa de ancho cero \(\*.*\)\@<!\<data\>
porque los comentarios del bloque no siempre comienzan con a *
en cada línea.
Parece que sería difícil/imposible excluir coincidencias dentro de comentarios de bloques de varias líneas, pero el resaltado de sintaxis puede identificar qué secciones son comentarios y cuáles no, entonces, ¿hay alguna forma de vincular la búsqueda de expresiones regulares con los grupos de resaltado de sintaxis? ?
Si es posible vincularnos a los grupos de resaltado de sintaxis, no solo podría excluir los términos que aparecen en los comentarios, sino también los términos que aparecen en cadenas, como esta:
output = "Sample data: '"+data+"' ...";
Y solo se coincidirían los datos en el medio fuera de las comillas.
¿Alguien sabe si esto es posible?
EDITAR:Definitivamente, al menos es posible buscar comentarios excluyentes. Podría definir una función de búsqueda () y verificar el grupo resaltado desde dentro, como lo indicó alguien eneste hilo. Porción relevante:
use search() y luego verifique si el grupo resaltado de sintaxis es un comentario. Si synIDattr(synIDtrans(synID(line("."), col("."), 1)), "name") es Comentario, llame a search() nuevamente.
Pero no creo que esto dejaría a hlsearch resaltando los términos correctos.