Por exemplo, se eu quiser pesquisar, \<data\>
mas quiser pular qualquer entrada que apareça em blocos de múltiplas linhas, comentários como este:
/*
* Don't match comments containing the term 'data'
*/
Não posso simplesmente usar lookbehind negativo de largura zero \(\*.*\)\@<!\<data\>
porque os comentários do bloco nem sempre começam com um *
em cada linha.
Parece que seria difícil/impossível excluir correspondências dentro de comentários de blocos de múltiplas linhas, mas o realce de sintaxe é capaz de identificar quais seções são comentários e quais não são, então existe alguma maneira de vincular a pesquisa regex com grupos de realce de sintaxe ?
Se for possível vincular-se aos grupos de realce de sintaxe, eu poderei excluir não apenas os termos que aparecem nos comentários, mas também os termos que aparecem nas strings, como este:
output = "Sample data: '"+data+"' ...";
E apenas os dados no meio, fora das aspas, seriam correspondidos.
Alguém sabe se isto é possível?
EDITAR:Pesquisar excluindo comentários é definitivamente possível, pelo menos. Eu poderia definir uma função search() e verificar o grupo de destaque dentro dela, conforme indicado por alguém emeste tópico. Parte relevante:
use search() e verifique se o grupo de destaque de sintaxe é um comentário. Se synIDattr(synIDtrans(synID(line("."), col("."), 1)), "name") for Comentário, chame search() novamente.
Mas não acho que isso deixaria o hlsearch destacando os termos corretos.