スクラッチパッド 2017-06-24 (Sat) 00:29

デバッグコンソールのコード実行は意外と便利だったんだけど、如何せん一行しか書けないので

Firefoxのスクラッチパッドみたく、複数行の JScriptのコードを手軽に実行できるようなアドオンを作ってみた。

◎機能(ボタン)の説明
+入力エリア追加
eJScriptのコード実行(キーボードのCtrl+EnterでもOK)
c入力エリアクリア
x入力エリア削除

本当は、入力エリアのタブ幅がデフォで8になっているところを4か2にして、入力エリアのサイズを可変にしたかったけど

IEのエンジンは、tab-sizeも resizeもサポートしてましぇーん。(´・ω・`)y-~~~

入力エリアはShift + ホイール上下で縦方向に伸縮できるようにしたけど、タブ幅をゴリゴリやるのは面倒そう。

CSSでやるのが簡単でスマートなのに。

ダウンロード

@TE64 17.6.10 Win 6.1.7601 WS 300 Admin IE 11 ja_jp


◎デバッグコンソールと併用した際の表示パターン例

ボトムバーに縦に並べて表示

レフトバーとボトムバーに表示

ボトムバーに横に並べて表示

レフトバーとライトバーに表示


◎アドオン作成時の私的メモ

htmlでUIを実装するタイプのアドオンでは、TEのシステムや他のアドオンとIDが被る可能性がありそうなので、

極力アドオン名を IDとしたもののみを使用し、UIの各オブジェクト(TAG)はIDの子孫の xx という形で扱うようにする。

どうしてもほかに IDを使う必要がある場合は アドオン名_xxxx のように命名する。

関連記事

デバッグコンソール 2017-06-15 (Thu) 00:56

X-Finderのガジェットとして使っていたデバッグコンソールを TE用のアドオンにしてみた。

こんな感じで、スクリプトや他のアドオンからデバッグコンソールにメッセージ出力できる。

Addons.DebugConsole.info('hoge');
Addons.DebugConsole.warning('hoge');
Addons.DebugConsole.error('hoge');
Addons.DebugConsole.warning(Addons.DebugConsole.dir({a: 100, b: "hello world"}));

まともに書くと長ったらしいので以下の通りの短縮形も使えるようになっている。

Addons.DebugConsole.info_m.i
Addons.DebugConsole.warning_m.w
Addons.DebugConsole.error_m.e
Addons.DebugConsole.dir_m.d

追加機能として、入力したコードを評価した結果を「情報(info)」として表示するようにしてみた。

作用のあるコードを入力することによりちょっとしたコマンド入力みたいなこともできる。

例えば te.Ctrl(CTRL_FV).Title とか入力すると、アクティブタブのタイトルが表示されるし、

fso.CreateTextFile(fso.BuildPath(te.Ctrl(CTRL_FV).FolderItem.Path, 'emptyFile.txt')).Close() とか入力すると

アクティブタブに emptyFile.txt ファイルを作成できたりする。

カーソルの上下で履歴呼び出しが可能。
ファイル置き場



アドオンの実装ってこんな感じでいいのかしらん。

@TE64 17.6.10 Win 6.1.7601 WS 300 Admin IE 11 ja_jp
関連記事

カラム幅自動調整 2017-06-12 (Mon) 23:07

カラムの幅を文字数に合わせて自動調整する

名前カラム幅自動調整
タイプJScript
オプション(function(){
var FV = te.Ctrl(CTRL_FV);
if(!FV.hwndList) return;
te.LockUpdate();
var head = api.SendMessage(FV.hwndList, LVM_GETHEADER, 0, 0);
var cnt = api.SendMessage(head, HDM_GETITEMCOUNT, 0, 0);
var item = api.Memory('HDITEM');
item.mask = HDI_WIDTH;
for(var i = 0; i < cnt; i++){
api.SendMessage(head, HDM_GETITEM, i, item);
api.SendMessage(FV.hwndList, LVM_SETCOLUMNWIDTH, i, -1);
}
te.UnlockUpdate();
})();

@TE64 17.6.10 Win 6.1.7601 WS 300 Admin IE 11 ja_jp
関連記事

タブの複製 2017-06-10 (Sat) 00:05

深い階層のフォルダを基点として、その周辺フォルダにアクセスしたいだけなので、

名前タブの複製
タイプJScript
オプションNavigate(te.Ctrl(CTRL_FV).FolderItem.Path, SBSP_NEWBROWSER);

これで全然かまわないけど、これだとタブの複製と言うより、「アクティブタブで開いているパスを新しいタブでもう一個開く」といった感じ。


元のフォルダから表示形式、カラム幅、ソートなどの情報を継承してやると幾分「タブの複製」っぽくなるか。

名前タブの複製
タイプJScript
オプション(function(){
var mbr = ["CurrentViewMode", "IconSize", "Columns", "SortColumn", "SortColumns", "GroupBy"];
var org = te.Ctrl(CTRL_FV);
Navigate(org.FolderItem.Path, SBSP_NEWBROWSER);
te.Ctrl(CTRL_FV).History = org.History;
te.LockUpdate();
window.setTimeout(function(){
mbr.forEach(function(e){ te.Ctrl(CTRL_FV)[e] = org[e]; });
window.setTimeout(function(){ te.UnlockUpdate(); te.Ctrl(CTRL_FV).Refresh();}, 0);
}, 100);
})();

履歴も継承してみたけど、これはオブジェクトなので参照渡しになるのかな?

te.Ctrl(CTRL_FV).History = org.History;

なんか値渡しっぽい感じで動いてるのでそのままにしてあるけど、このコードは切った方がいいかも。

そもそも履歴を継承しても便利なことあるかなって話だし。

@TE64 17.5.29 Win 6.1.7601 WS 300 Admin IE 11 ja_jp
関連記事

タブをすべて閉じる 2017-06-06 (Tue) 00:18

アクティブペインのロックされていないタブをすべて閉じる

こんなのとか
名前タブを全て閉じる
タイプJScript
オプションExec(te.Ctrl(CTRL_FV), "Close Tabs on Right", "Tabs", te.hwnd);
Exec(te.Ctrl(CTRL_FV), "Close Tabs on Left", "Tabs", te.hwnd);
Exec(te.Ctrl(CTRL_FV), "Close Tab", "Tabs", te.hwnd);

こんなの
名前タブを全て閉じる
タイプJScript
オプションfor(var TC = te.Ctrl(CTRL_FV).Parent, i = TC.Count; --i >= 0;) TC.Item(i).Close();

@TE64 17.5.29 Win 6.1.7601 WS 300 Admin IE 11 ja_jp
関連記事
注意事項
基本的にこのブログはブログ主の備忘録です。

ブログの内容にはブログ主の主観や時には正確でない情報が含まれていることもあります。書いてある内容がすべての環境にあてはまることを保証するものでもありません。

また、過去の記事は現時点で既に陳腐化していることもあります。

その辺をご理解の上で当ブログ内に書いてあることを試す場合は自己責任でお願いします。

記事内容の誤りの指摘、疑問点の回答などコメント頂けると助かります。
カレンダー
05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -
ブログ内検索
カラーコードチェッカ
カラーコードの確認
入力例) #ffffff | blue
カテゴリ
最新記事
最新コメント
最新トラックバック
リンク
ブロとも申請フォーム

この人とブロともになる

メールフォーム

名前:
メール:
件名:
本文: