[ 新規に投稿する ]

アウトライン時の動作について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)〇
なんて感じで重ねて書くこともできます。あとから見て分かりやすいようにできるだけ読みやすい形で記述しておくことをお勧めします。なんて、正規表現で何度も沼に落ちた者のおせっかいですが;)
[ ]

[ 新規に投稿する ]