[4081]
RE: 色分けの優先順位
すい
>正規表現キーワード>コメント(ブロック)
>となっていますが、<<略>>
これは
「“コメント”と“正規表現キーワード”に同一ルールを定義した場合、
“正規表現キーワード”が優先して適用される。」
という意図ではないかと。
例えば
・行型コメントに「//」と定義し、「//」以降をコメントと定義する。
・正規表現キーワードに「/\/\/.*/k」で、「//」以降を強調表示する。
という具合に両者に同じルールを定義すると、“正規表現キーワード”の
ルールの方が優先して適用されます。
そういう話でしょう。
で、“コメント”“正規表現キーワード”は、どちらも、
「何にも色分けされていない範囲の文字列にのみ適用される物」
という仕様になっています。
一度“コメント”と判定されてしまった範囲の文字列に対しては
“正規表現キーワード”が適用される事はありません。
同様に一度“正規表現キーワード”で色分けされる場所であると
判定されてしまった範囲の文字列に対して、“コメント”が適用
される事はありません。
例えば
-----
123 // test % abc
-----
というテキスト文字列に対して
・行型コメントに「//」と定義し、「//」以降をコメントと定義する。
・正規表現キーワードで「%」以降、行末までを正規表現キーワードで色分けしろ。
にすると、先に「//」以降、行末までの範囲は全てコメント扱いになり、
正規表現のルールが適用される事はありません。
逆に
・行型コメントに「%」と定義し、「%」以降をコメントと定義する。
・正規表現キーワードで「//」以降、行末までを正規表現キーワードで色分けしろ。
にすると、先に「//」以降、行末までの範囲は全て正規表現キーワード
扱いになり、コメントが適用される事はありません。
この辺のルールを明確に理解した上で各種色分け機能同士で
文字列の奪い合いをするように考えながら定義していくと
かなり柔軟な色分けも出来るようになっていきます。
どういう色分けをしたいのか分かりませんが、ある程度複雑なルールでしたら
“正規表現キーワード”のみで定義していく
(コメント等も“正規表現キーワード”で塗り分ける)
という方向で考えてけばうまくいく *かも* 。
もっともブロック型のコメントは“正規表現キーワード”では完全な代用ができませんが。
(“正規表現キーワード”は複数行にまたがる色分けは出来ませんから)
ただ、プロック型コメントと正規表現キーワードに、色分け開始側が
同じ文字列になるルールを定義した場合の挙動がちょっと違うっぽいんですけど。