アウトライン表示での「範囲選択」についNo.07370
いっぷく さん 12/07/27 16:14
 
お世話になっております。
前回の「アウトライン表示で異常終了」についてはβ31で修正され
ていることを確認しました。ありがとうございました。


今回は、同じアウトラインのことですが、
例えば、以下のようなコードがあるとします。

// funcAのコメント(複数行)
function funcA() {
  ........
}

// funcBのコメント(複数行)
function funcB() {
  ........
}



この時、アウトラインから funcA の「範囲選択」をすると、

------------------------ここから
function funcA() {
  ........
}

// funcBのコメント(複数行)
------------------------ここまで

の範囲が選択されますが、希望としては

------------------------ここから
// funcAのコメント(複数行)
function funcA() {
  ........
}

------------------------ここまで

を選択してほしいのですが、可能でしょうか?
設定をいろいろ見ましたが、わかりませんでした。


もちろん、コメントを function 内に入れてしまえばいいんでしょ
うが、今までの慣例と可読性の観点から、それはやりたくありませ
ん。
このおかげで、アウトライン枠を使って、関数単位で順番を整理し
たりできないので、非常に残念だと思っています。
もしも現在そのような設定がないならば、折りたたみとの兼ね合い
とか、いろいろと難しいこともあるかと思いますが、ぜひご検討願
いたく思います。

[ ]
RE:07370 アウトライン表示での「範囲選択No.07371
秀丸担当 さん 12/07/27 17:21
 

要望ありがとうございます。
関数の上部の複数のコメントを判断したいというご意見や、似た話として対応す
る括弧を正確に判断してアウトライン解析の終端を判断したいというご意見は他
の方からも頂いているところですが、なかなか難しいところです。
現状ではこれをリアルタイムにアウトライン解析させる方法は無いです。
何らかの方法があったらいいということでご意見参考にさせていただきます。


現状では、例えば区切りライン風のテキストの後に見出し文が来るケースに限っ
て、次の行の内容をアウトライン解析に表示させるオプションがありますが、言
われているケースには適用できないと思います。
アウトライン解析をツリー表示にして、ツリーの定義のプロパティで「オプショ
ン>>」で「表示範囲」を「次の行全体」にしておくオプションがあります。
例えば「/*---」の付いた行を定義したとき、「次の行全体」にしておくと、表
示されるのは次の行になります。

例:
/*---------
見出し
--------*/

こういう書き方でアウトライン解析に表示されるのは「/*---」ではなく「見出
し」を表示します。



あるいは、本題とはちょっと違うかもしれないですが、マクロでコメントを含め
た関数を簡単に選択しておくマクロを作っておくと便利だと思います。
例えば、アウトライン解析とコメントの色が判断されている前提で、{}の対応の
ある関数と上部のコメントを選択するマクロの例では以下の様な感じでできそう
です。(括弧が無かった場合などを考えるともうちょっと改良が必要かもしれな
いです)


#searchoptionOrg = searchoption;
$searchbufferOrg = searchbuffer;

golinetop2;
while((colorcode&0x1f)==3){
  down;
}
if( foldable(0x20) == false ) {
  prevfoldable 0x20;
}
up;
if((colorcode&0x1f)==3){
  while((colorcode&0x1f)==3){
    up;
  }
}
down;
#x1=x;
#y1=y;
searchdown "{";
gorightkakko;
right;
if(code==0x0d){
  right;
}
beginsel;
moveto #x1,#y1;
endsel;

setsearch $searchbufferOrg, #searchoptionOrg;


[ ]
RE:07371 アウトライン表示での「範囲選択No.07372
いっぷく さん 12/07/27 18:29
 
返信、ありがとうございました。
想像していた通り、やはり難しいんですね。

ダメなら、マクロでも作ろうかなと思っていたところだったので、
ご呈示のマクロを参考にさせていただきます。

どうも有り難うございました。

[ ]