quinta-feira, 16 de abril de 2009

Definindo colorização de item por deslocamentos na região no arquivo de sintaxe

Suponha que você quer definir um região para o texto entre '(' e ')' depois de
um 'if'.
Mas você não quer incluir o 'if' ou o '(' e ')'. Você pode fazer isso
especificando 'offsets' (deslocamentos) para os padrões:
:syntax region xCond start=/if\s*(/ms=e+1 end=/)/me=s−1
O deslocamento para o padrão 'start' é 'ms=e+1'. 'ms' significa 'Match Start'. Isto
define um deslocamento para o início da ocorrência do texto. Normalmente a
ocorrência começa aonde o padrão localiza. 'e+1' significa que a ocorrência
agora começa no final que o padrão localizou, e então um carácter a mais.
O deslocamento para o final do padrão é 'me=s-1'. 'me' significa 'Match End'.
's-1' significa o início que o padrão localizou e então um carácter a menos.
O resultado neste texto :
if (foo == bar)
Somente 'foo == bar' será colorizado como 'xCond'.

0 comentários:

Postar um comentário