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 ファイルではあまり意味がありませんが、一般的には意味があります。