"行の強調表示"をさせた範囲内にある"コメNo.35654
TatsuH さん 17/03/10 23:25
 
毎々お世話になります.

題記の通りなのですが,"コメント"の強調表示の優先順位が"行の強調表示"より
高い筈なのに,"コメント"文字色が"普通の文字"と同じになってしまうのは
何故なんでしょうか.

《使用環境》
秀丸エディタ:Version 8.67 32bit版
OS          :Win7 Home Premium SP1 64ビット

[ ]
RE:35654 "行の強調表示"をさせた範囲内にNo.35655
秀丸担当 さん 17/03/13 09:40
 

「コメント」の色は、「行の強調表示1」〜「行の強調表示4」の色より優先順位
が高いです。
こちらで確認してみた限りでは、以下のようになりました。

サンプルテキスト:
  LINE(赤色)<!--COMMENT 1 (緑色)-->
  NORMAL(黒色)<!--COMMENT 2 (緑色)-->

強調表示の設定は「LINE」という文字列で追加し、「行の強調表示1」にします。
「行の強調表示1」の文字色は赤色です。

複数行コメントの設定は言語指定で「HTML/XML」にします。
「コメント」の文字色は緑色です。

普通の文字の文字色は黒色です。

色は、サンプルテキストに書かれているような色になります。
COMMENT 1 の部分が緑色ではなく、黒色になっているということかと思いますが、
うまく再現できませんでした。
再現方法が上記と違っている部分や、設定が違っている部分がある場合は教えて
いただけると助かります。

[ ]
RE:35655 "行の強調表示"をさせた範囲内にNo.35656
TatsuH さん 17/03/13 16:26
 
秀丸担当 さん,ご回答ありがとうございます.

>再現方法が上記と違っている部分や、設定が違っている部分がある場合は教えて
>いただけると助かります。

ざっくりした情報では再現できないようなので,下記設定ファイルとテストファイル
をメールで送らせていただきます.
No.35655 用
・AHK.hilight
・テスト.ahk
尚,設定ファイルは再現に必要な箇所のみ残るよう削除してあります.

色々試していたところ,複数行コメントの開始文字列と終了文字列に"#IfWinActive
"と"#IfWinActive"を設定しているせいで,コメント色が"普通の文字"になってしま
っているようです.
目的は,#IfWinActiveで囲った範囲を背景色で視認しやすいようにしたかったのです
が,これではコメント色まで色が変わってしまうようです.
文字の強調表示に影響なく,背景色だけを変える方法はないでしょうか?


[ ]
RE:35656 "行の強調表示"をさせた範囲内にNo.35657
秀丸担当 さん 17/03/13 17:37
 

ファイルを受け取りました。ありがとうございます。
複数行コメントをユーザー定義されている場合は、定義によります。
#IfWinActiveのほうのプロパティで、「子を含むのを許可」にして、コメントの
ほうは「子になるのを許可」にすると一応できます。
「子になるのを許可」にするには「単一行(行末まで)」ではできないので、「複
数行」にして、終了文字列を正規表現で「$」までにします。

ただこの場合優先順位は関係なく、単純に切り替わっていることになるので、コ
メント色の透明色は意味が無くなってしまいます。

透明色もやるとしたら、少々無理矢理な解決方法としては、「複数行コメント」
での一行コメントをやめて、「強調表示」のほうで一行コメントを定義する方法
も考えられます。
正規表現で「(?<!`);.*$」を追加して、コメント色は追加できないので、何か別
の強調を割り当ててやると一応可能ではあります。

[ ]
RE:35657 "行の強調表示"をさせた範囲内にNo.35658
TatsuH さん 17/03/13 18:46
 
ご回答ありがとうございます.

>透明色もやるとしたら、少々無理矢理な解決方法としては、「複数行コメント」
>での一行コメントをやめて、「強調表示」のほうで一行コメントを定義する方法
>も考えられます。

ご教示の後の方法を用い,使っていない[強調表示7]をコメント色に変更した後,
複数行コメントの方に[(?<!`);.*$]の文字列を追加して[強調7]で表示させるように
したところ,無事目的を達成しました.

大変ありがとうございました.

[ ]