【秀丸エディタ】アウトライン解析で意図No.37538
ohtorii さん 19/09/17 19:15
 
お疲れさまです。

アウトライン解析で意図したとおりに強調表示できないため、
ご確認をお願いできないでしょうか。

秀丸エディタヘルプで調べましたが、
もし見落としがあればご容赦くださいm(__)m


*正規表現(大文字小文字を区別しない設定です)
texture2d\s+\i\c*(?=[ \t\r\n]*<)


*ソースコード
//これはアウトライン解析に表示される
Texture2D DiffuseIBL <
>;

//これはアウトライン解析に表示されない
Texture2D DiffuseIBLText
<
>;

*補足
正規表現の後方一致指定を利用し2行にわたって文字を検索していますが、ヒットす
る文字は1行だけです。
なので、アウトライン解析の枠に表示できるという認識です。


*ファイルをアップしました。
https://github.com/ohtorii/test
test.fx
test.hilight
test.png

(ファイルの説明)
*test.fx
 アウトライン解析を行いたいソースコード

*test.hilight
 強調表示の設定

*test.png
 強調表示の結果

よろしくお願いいたします。

[ ]
RE:37538 【秀丸エディタ】アウトライン解No.37539
ohtorii さん 19/09/17 19:16
 
環境を書き忘れていました、

Windows10 64bit
秀丸エディタ v8.89 beta20 64bit

よろしくお願いいたします。

[ ]
RE:37539 【秀丸エディタ】アウトライン解No.37540
秀丸担当 さん 19/09/18 09:30
 

バグ情報ありがとうございます。
サンプルの通りにして再現させることができました。
ツリー表示の定義は、\nという文字列が含まれるとき、2行まで正規表現の対象とな
るようになっています。
定義に\nは含まれるのでできるはずですが、2行目の最後の1文字が対象になっていな
い問題があることがわかりました。
2行目が1文字だけだと、それが最後の1文字なので、対象になっていませんでした。
V8.89β21で修正させていただきます。

[ ]
RE:37540 【秀丸エディタ】アウトライン解No.37541
ohtorii さん 19/09/19 16:59
 
お疲れさまです。

Ver8.89β21で確認したところ、
強調表示されない正規表現パターンがありました。


*NGのパターン
texture2d\s+\i\c*(?=\s*<)

*OKのパターン(今回のベータで修正済み)
texture2d\s+\i\c*(?=[ \t\r\n]*<)


\sは秀丸エディタヘルプによると空白([ \t\r\n]と同じ)です。
なので、上記2パターンは同じ正規表現になるため、同じように強調表示されるとい
う認識でいます。

よろしくお願いいたします。

[ ]
RE:37541 【秀丸エディタ】アウトライン解No.37542
秀丸担当 さん 19/09/19 17:35
 

元の話題の続きで、アウトライン解析のツリー表示の定義のことかと思います。
ツリー表示の定義で2行を対象とするのは、"\n"という文字列が含まれるときのため、
NGのパターンでは確かに言われている通りになってしまいます。
これ以外にも、[^...] \D \I \C といったパターンでそうなってしまいます。
これらのパターンが含まれる場合でも2行を対象とするように修正させていただきます。

強調表示や検索文字列の強調については、一行内だけが対象になっていて、どちらの
パターンでも一行に収まるほうだけが強調表示されると思います。

[ ]
RE:37542 【秀丸エディタ】アウトライン解No.37543
ohtorii さん 19/09/20 09:53
 
お疲れさまです。

>元の話題の続きで、アウトライン解析のツリー表示の定義のことかと思います。

はい、そうです。



>これらのパターンが含まれる場合でも2行を対象とするように修正させていただきま
>す。

ありがとうございます!
[ \t\r\n]のパターンで意図したとおりに動作しているので、
私は特に困っておりません。
なので、担当者の都合の良い時期にベータ版がリリースされれば問題ないと思います。



>強調表示や検索文字列の強調については、一行内だけが対象になっていて、どちら
>のパターンでも一行に収まるほうだけが強調表示されると思います。

はい、こちら元々問題なく動作しています。


よろしくお願いいたします。

[ ]