アウトライン時の動作についてNo.41867
ANACOSTIA さん 25/04/14 10:49
 
 アウトライン解析において、[ツリー表示の定義]の部分を空欄とし、行頭のタブの
個数で自動判定にしています。
 この時、

(1) 新しくファイルを開いた時、ツリーを折りたたまれた状態(行頭にタブが無い行
のみを表示)にすることは可能でしょうか?

(2) 行頭1文字目が[複数行コメント]で定義した強調表示の対象から外れてしまいま
す(定義した強調表示にならない)。
  行頭1文字目も強調表示させるにはどう設定すれば良いのでしょうか?

[ ]
RE:41867 アウトライン時の動作についてNo.41871
秀丸担当 さん 25/04/14 16:13
 
アウトライン解析で[ツリー表示の定義]を全部削除して何もない状態にしたときは自
動判定になりますが、タブの個数で自動判定ということにはならないはずです。
何かしら定義されていると思うのですが、定義されていたら教えてほしいです。

定義されているとして、その定義された1つのプロパティで、[オプション(O)>>]を
出して、[展開/折りたたみ状態]を[初期状態でツリーを折りたたみ]にすると開いた
ときに折りたたまれた状態になります。

アウトライン解析の定義は、複数行コメントの定義の強調のされ方には影響を与えな
いはずですが、もし何かあるとしたら不具合かもしれません。
例などがありましたら教えてほしいです。

[ ]
RE:41871 アウトライン時の動作についてNo.41873
ANACOSTIA さん 25/04/15 10:06
 
 [ツリー表示の定義]は空欄です。
 タブの文字数を4文字に固定し、タブの個数でインデントのレベルを設定しています。

 次に、[ツリー表示の定義]に
・レベル1 → ^[^\t]
・レベル2 → ^\t{1}[^\t]
・ ︙
と入力して試してみました。
 この時も、1文字目が複数行コメントの強調表示の対象から外れます。
 また、[展開/折りたたみ状態]を[初期状態でツリーを折りたたみ]と設定しても、
全て展開された状態で開きます([アウトライン解析の枠]内は全て折りたたまれた状
態になります。)。

 「1文字目が複数行コメントの強調表示の対象から外れる」に関しては、もう少し時
間をください。

[ ]
RE:41873 アウトライン時の動作についてNo.41876
秀丸担当 さん 25/04/15 11:28
 
もしかしたら、[折りたたみ用の余白]との混同があるのかもしれません。
ツリー表示の定義は、[アウトライン解析の枠]と[アウトライン解析...]のダイアロ
グのことになります。
[折りたたみ用の余白]は、編集エリアの行番号表示部分のことになります。

ツリー表示の定義の、[初期状態でツリーを折りたたみ]は、[アウトライン解析の枠]
と[アウトライン解析...]のダイアログの、ツリーの状態が対象になっています。
[折りたたみ用の余白]の折りたたみ状態には影響ありません。

[折りたたみ用の余白]のほうは、ファイルを開いた直後に自動的に折りたたむ設定は
無いです。
手動では[表示]→[折りたたみ]→[全て折りたたみ...]でまとめて折りたたむ方法が
あります。

ツリー表示の定義が無くても、インデントの深さ(=行頭タブや空白の量)によって
[折りたたみ用の余白]には小さい+/-が表示されます。
(設定は[その他]→[ファイルタイプ別の設定]→[折りたたみ]→[折りたたみ可能な
条件]によります)

[ ]
RE:41876 アウトライン時の動作についてNo.41879
ANACOSTIA さん 25/04/15 14:33
 
 てっきり、[折りたたみ用の余白]部分も[初期状態でツリーを折りたたみ]の対象に
なるものだと認識していました。

 行1文字目が強調表示の対象から外れるという問題ですが、こちらの設定ミスでし
た(※)。
 お騒がせして申し訳ありません。

※ "\"が直前に来ない"〇"を強調表示させる為に"(?<=[^\\])〇"としたところ、行頭
の〇がマッチしない。
 "(?<=([^\\]|^))〇"としたら行頭の〇にもマッチするようになった。
 "(?<=([^\\]|\^))〇"とすると、反って行頭の〇がマッチしなくなる理由がまだ理
解できておりませんが。

[ ]
RE:41879 アウトライン時の動作についてNo.41880
igus さん 25/04/15 15:42
 
(?<=([^\\]|\^))〇だと"^"が行頭でなく文字列の"^"と認識されてしまいますね。
(?<![\\])〇の方が分かりやすいかも。

[ ]
RE:41880 アウトライン時の動作についてNo.41881
ANACOSTIA さん 25/04/16 11:25
 
> (?<=([^\\]|\^))〇だと"^"が行頭でなく文字列の"^"と認識されてしまいますね。

そうでした。
ボケていますね。

> (?<![\\])〇の方が分かりやすいかも。

実際の式はもっと複雑で、前方不一致指定にすると更にややこしくなるので、前方一
致指定にしています。

[ ]
RE:41881 アウトライン時の動作についてNo.41882
igus さん 25/04/16 11:51
 
(?<=[h])(?<!hoge)〇
なんて感じで重ねて書くこともできます。あとから見て分かりやすいようにできるだ
け読みやすい形で記述しておくことをお勧めします。なんて、正規表現で何度も沼に
落ちた者のおせっかいですが;)

[ ]