0

vim のような虹のかっこで、さまざまなレベルのかっこを異なる色にしようとしています。しかし、たとえばcssの強調表示など、壊れずにそれを行うことはできませんでした。

問題は次のとおりです。cssファイルの中括弧に入るテキストの構文は、次のように「含まれている」と非常に合理的に定義されています。

syn keyword cssColor contained aqua
syn region cssDefinition transparent start='{' end='}' contains=cssColor

この定義では、"aqua" キーワードが中括弧内にある場合は強調表示されますが、それ以外の場合は強調表示されません。

今、中括弧の領域を次のように定義すると:

syn region brace1 transparent contains=brace2
syn region brace2 transparent contained contains=brace3
syn region brace3 transparent contained contains=brace1

それらを異なる色にできるようにするために、cssDefinition による cssColor の封じ込めを解除しています。明らかに機能していないALLが含まれていると言っています。

問題は、波括弧の元の構文グループに含まれる要素を取得するコードを記述し、それらを新たに定義された構文グループに追加することは可能かということです。これは css ファイルではあまり意味がありませんが、一般的には意味があります。

4

1 に答える 1