Como realço todo o texto em uma linha que aciona o syn-containin?

1

Suponha que eu tenha essas definições do Vim:

syn match tasktag "\(\s\)\@<=@[a-zA-Z0-9_]\+"
syn match taskdone "\<[Dd]one\>" containedin=tasktag

Como eu especifico taskdone para destacar todo o texto na linha? Eu olhei :h syn-pattern-offset assim como :h syn-region .

    
por wilhelmtell 25.07.2010 / 19:34

1 resposta

0

Primeiro, a sua correspondência "tasktag" não permite espaços ou outros "delimitadores de palavras", mas a sua correspondência "tarefa" exige que "done" seja uma palavra discreta devido ao seu < e \ > átomos de limite de palavra.

Em segundo lugar, sua correspondência "tarefa" é escrita para destacar apenas a palavra "Concluído".

Supondo que entendi o que você quer, modifiquei suas duas correspondências:

syn match tasktag "\(\s\)\@<=@[a-zA-Z0-9_ ]\+"
syn match taskdone "@.*\<[Dd]one\>.*" containedin=tasktag

Se você ainda não fez isso, precisará especificar o destaque das duas correspondências. Por exemplo:

highlight link tasktag TODO
highlight link taskdone Statement
    
por 30.10.2010 / 22:50