quarta-feira, 15 de abril de 2009

Definindo os itens seguintes de um item no arquivo de sintaxe

A linguagem 'x' tem instruções na forma:
if (condition) then
Você quer colorir os três itens de forma diferente. Mas {condition} e 'then'
poderiam aparecer em outros lugares, aonde ele tem colorização diferente.
Isto é o que você pode fazer:
:syntax match xIf /if/ nextgroup=xIfCondition skipwhite
:syntax match xIfCondition /([^)]*)/ contained nextgroup=xThen skipwhite
:syntax match xThen /then/ contained
O argumento 'nextgroup' especifica qual item vem a seguir. Isto não é
necessário. Se nenhum dos itens que estão especificados são encontrados, nada
acontece.
Por exemplo, neste texto:
if not (condition) then 
O 'if' corresponde a 'xIf'. 'not' não corresponde com o nextgroup 'XIfCondition'
especificado, assim somente 'if' é colorido.

O argumento 'skipwhite' diz ao Vim que espaço em branco (espaços e tabs) podem
aparecer entre os itens. Argumentos similares são 'skipnl', o qual permite
quebra de linha entre os itens, e 'skipempty', o qual permite linhas vazias.
Note que 'skipnl' não pula uma linha vazia, alguma coisa deve ter
correspondência depois da quebra de linha.

0 comentários:

Postar um comentário