A correspondência de Vim não funcionou como esperado

2

Eu tentei estender a sintaxe C no Vim com o exemplo no manual.

Primeiro eu inicio o vim sem qualquer configuração:

vim -u NONE test.c

Então eu carrego a sintaxe c e crio minha extensão

syntax on
syntax keyword myword HELP containedin=cComment contained
highlight myword guibg=red

código:

1: /* HELP */
2: int main(int argc, char **argv) {
3:     int HELP = 0;
4:     if(HELP);
5: }

A ajuda é destacada na linha 1 como esperado. Também é destacado na linha 4, há alguma explicação para isso?

    
por Klas. S 29.10.2017 / 15:00

1 resposta

0

Você precisa descobrir qual grupo de sintaxe "ocupa" o HELP na terceira linha que não é coberta pela sua regra de sintaxe. :syn list mostra todos os grupos ativos, mas é mais fácil quando você instala os SyntaxAttr.vim - Mostrar os atributos de destaque da sintaxe de caractere sob o cursor .

SyntaxAttr me diz que a sintaxe cBlock corresponde a essa; isso precisa ser incluído em sua extensão também:

syntax keyword myword HELP containedin=cComment,cBlock contained
    
por 02.11.2017 / 17:06