アウトプット枠強化案No.09443
vscode-life さん 17/05/02 18:45
 
□概要

 アウトプット枠に、チャンネル(=タブかなにか)の概念を
 導入した方が良いのではないでしょうか。という提案です。
 (強い要望というほどではなく、「こうなってるといいなぁー」ぐらいですので、
  こういう意見もあるんだな、程度に受け取って下さい)


□現行のアウトプット枠の問題点

 一つしかアウトプット枠がないので、
 異質な情報が交じる。交じることを敬遠し、
 マクロから使う際は、「表示前に、とりあえずという感じでクリア」
 してからアウトプットする傾向がある。


□解決している例

 例えば、Visual Studio のアウトプット枠(的なもの)は
 ・パッケージマネージャコンソール(=PowerShell)
 ・エラー一覧
 ・出力(print, OutputDebugString等の類)
 ・シンボルの検索結果

 というように、分かれています。


□挙動のフラッシュイメージ

 ・アウトプット枠は、デフォルトでは、「出力」タブと「検索結果」タブの2つの
タブを持つ。
  これまでのアウトプット枠に相当するタブは「出力」タブ。
 ・最後に実際に文字列等をアウトプットしたタブが自動でアクティブタブとなる。
  (※並列に出した際のタブ間の「高速ポッピング」は防止する必要はあります)
 ・既存の秀丸エディタの機能で、アウトプットへと出すもののうち、
  通常の出力は「出力」へ、検索系は「検索結果」へ
 ・マクロから、任意のタブに出すことが出来る。
  既存の「出力」タブ、「検索結果」タブだけではなく、
  自分で命名した新たなタブを用意し、そのタブに属する
  アウトプット枠へと出力することが出来る。


□マクロから操作した場合のフラッシュイメージ

    #OUT = loaddll( hidemarudir + "\\HmOutputPane.dll");

    // 「ぼくの枠」というアウトプット枠タブ(=チャンネル)が(無ければそれを)生
成し、そこに出力する
    #ret = dllfunc(#OUT, "ChangeChannel",hidemaruhandle(0), "ぼくの枠");
    #ret = dllfunc(#OUT, "Output",hidemaruhandle(0), $$message);

    #ret = dllfunc(#OUT, "ChangeChannel",hidemaruhandle(0), "出力"); // 既存
の出力タブが対象
    #ret = dllfunc(#OUT, "Output",hidemaruhandle(0), $$message);

    #ret = dllfunc(#OUT, "ChangeChannel",hidemaruhandle(0), "検索結果"); //
既存の検索結果タブが対象
    #ret = dllfunc(#OUT, "Output",hidemaruhandle(0), $$message);

    freedll(#OUT);

// 何もChangeChannelしていない状態の場合は、「出力」タブへ。

[ ]
RE:09443 アウトプット枠強化案No.09444
秀丸担当 さん 17/05/08 09:37
 

ご提案ありがとうございます。
現状で似たような中身を入れ替える手法として、dllfuncの関数で"Push"と"Pop"
がありますが、一時的に入れ替えて後で戻すという使い方になります。
名前をつけて任意に切り替えができたら便利だと思います。
ご意見参考にさせていただきます。

[ ]