アウトライン解析の終了位置No.29134
papayaaan さん 10/10/29 09:59
 
アウトライン解析なんですけど

1: int xxx(...)
2: {
3:   /*...*/
4: }
5: //次の関数に対するコメント
6: int yyy(...)

ってなっていると、1〜5行目までが関数xxxと認識されてしまい、折りたたみでまと
められてしまいます。括弧の対応とかで判断できないのでしょうか?

[ ]
RE:29134 アウトライン解析の終了位置No.29136
秀丸担当 さん 10/10/29 10:52
 

折りたたみする範囲は、[その他]→[ファイルタイプ別の設定]→[アウトライン]
→[折りたたみ]→[折りたたみ可能な条件の設定]で指定できます。
通常ではすべてONになっていると思います。

「1: int xxx(...)」の行の場合、おそらく「アウトライン解析との対応」が適
用され、次のアウトライン解析の結果までが対象になっていると思います。

「2: {」の括弧の上にカーソルを置いて折りたたみをすると、「カーソル上の対
応する括弧」が適用されて、対応する括弧までが適用されるようになると思いま
す。

[ ]
RE:29136 アウトライン解析の終了位置No.29138
papayaaan さん 10/10/29 14:13
 
アウトライン解析ではアウトラインの始点を決めることは出来ても、終点を決めるこ
とは出来ないんですね。残念です。対応する括弧をたたむのは知っていますが、そこ
まで移動するのはいささか面倒ですので、マクロを組んでみようと思います。

ありがとうございました。

[ ]
RE:29138 アウトライン解析の終了位置No.29139
秀まるお2 さん 10/10/29 14:43
 
 「ファイルタイプ別の設定・アウトライン・解析」に、「追加」で、

 種類:文字列
 文字列:  ^\}$
 大文字/小文字の区別:ON
 正規表現:ON

 1つ上のツリー定義と同じレベルとして定義:ON
 見出しバーに表示する対象:                OFF

 として追加してやれば、それで折りたたみが関数の中身だけになる、という風
に出来ましたが、こうするとアウトライン解析の一覧表示にも「}」が出てきて
しまうようでした。

 マクロで折りたたむとしたら、

    disableerrormsg;
    while( 1 ) {
        goleftkakko;
        if( !result ) {
            break;
        }
    }
    if( code == '{' ) {
        fold;
    }

 になるようではあります。

[ ]
RE:29139 アウトライン解析の終了位置No.29146
papayaaan さん 10/10/30 00:01
 
なるほど、確かにこれなら閉じ括弧で止めることが出来ますね。メンバ関数とかはイ
ンデントしているので使えませんが……。ないよりは便利なので使わせてもらいます。
ありがとうございます。

[ ]