[ 新規に投稿する ]

複数行の強調表示で正規表現が上手く動作しないNo.41175
fzok4234 さん 24/04/08 18:36 [ コメントを投稿する ]
  こんばんは、Fzok4234 です。


複数行の強調表示についてですが、以下のファイル

0000  /*a*/bbb
0001  /*a*/b

の「b」の文字を「文字定数」として色付けすることを意図して .hiligjt ファイルの内容を

/<HilightMulti>
/0003,00000002,00,00,00000006,"/*",00000006,"*/"
/0014,00000003,00,00,00010007,"(?#lookbehind)(?<=/\\*a\\*/)b+",00000000,""

として読み込みましたが上手くいきません。

「/*a*/」の部分はちゃんと「コメント」として色付けされますが、「b」の文字には何も色付け
されません。

HmJre.dll 5.34 と hmonig.dll 0.8.7.0 との両方で同じ症状が出ます。秀丸エディタは
9.32正式版 Float x64 です。


[ ]
RE:41175 複数行の強調表示で正規表現が上手く動作しないNo.41177
秀丸担当 さん 24/04/09 11:07 [ コメントを投稿する ]
  バグ情報ありがとうございます。
確かにうまくいかないことが確認できました。
調べてみたところ、lookbehindによって戻ることができる限界は、/*で開始してからの次の文字のaまでになっていました。
こういう場合でもできるように修正します。
[ ]
RE:41177 複数行の強調表示で正規表現が上手く動作しないNo.41189
fzok4234 さん 24/04/13 14:30 [ コメントを投稿する ]
  9.35β2 に更新の上でテストしましたが、まだ動作がおかしいです。

拡張子 .test に対応するファイルタイプ別の設定に読み込んだ .hilight の内容は以下の通りとします。

/<HilightMulti>
/0003,00000002,00,00,00000006,"/*",00000006,"*/"
/0014,00000003,00,00,00010007,"(?#lookbehind)(?<=/\\*a\\*/)b+",00000000,""

テストする対象ファイルの foo.test の内容を、以下のように行頭からコメントが始まるようにします。

/*a*/bbb
/*a*/b

このとき、foo.test を開いただけで秀丸エディタがフリーズしてしまいました。

また、以下のように行頭からコメントが始まらないようにした bar.test では、文字「b」への「文字定数」
としての色付けが未だ行われていません。

cc /*a*/bbb
cc /*a*/b

この bar.test の 1 行目の末尾に半角スペースを 2 個ほど入力しようとしたところ、またしても
フリーズしてしまいました。


[ ]
RE:41189 複数行の強調表示で正規表現が上手く動作しないNo.41190
秀丸担当 さん 24/04/15 08:58 [ コメントを投稿する ]
  早速のご確認ありがとうございます。
すみません、確かにうまくいっていませんでした。
インストーラの関係でV9.34として正式版を出す予定ですが、それとは別にまたV9.35のβ版で修正させていただきます。
[ ]
RE:41190 複数行の強調表示で正規表現が上手く動作しないNo.41192
fzok4234 さん 24/04/16 12:03 [ コメントを投稿する ]
  9.35β3 にて正常に動作するようになったことが確認できました。修正ありがとうございます。

[ ]

[ 新規に投稿する ]