linuxBean14.04(15)Bracketsの右クリックメニューを整理する

2015-05-08

旧ブログ

t f B! P L

前の関連記事:linuxBean14.04(14)Bracketsのメニュー項目追加の仕組みをみる


拡張機能のBrackets Tools、Minifier、String Convert、Beautify、Special Html Characters、Brackets Additional Right Click Menuをインストールすると右クリックメニューに表示しきれない程の項目が追加されます。これを整理します。

拡張機能を追加するたびに増える右クリックメニューの項目


右クリックメニューの項目が増えすぎて表示しきれません。

わざわざモニタを縦にしてようやく全項目をキャプチャできました。


拡張機能を追加する前は最初の3項目だけでした。

それがいまは数えるもの嫌になるほど追加されています。

しかも重複しているものもあります。

スクロールができるわけでもなく下の方の項目は表示すらできません。

異常事態です。

どの項目を右クリックメニューに残すのか検討する


とりあえず右クリックメニューの項目にしかない項目を抽出してみます。

クイック編集
クイックドキュメント
Cut
Copy
Paste
Camel Case
Toggle Block Comment
Toggle Line Comment
Fix Indent Line/s
Create new Gist

これぐらいの項目なら許容できそうです。

Fix Indent Line/sは何をしているのかよくわからないので不要です。
Camel Caseも使うことはなさそうです。

UPPERCASEとlowercaseは使用頻度が高そうなので右クリックメニューに残しておきたいです。

クイック編集
クイックドキュメント
----------------
Cut
Copy
Paste
----------------
UPPERCASE
lowercase
Special HTML Character
----------------
Toggle Block Comment
Toggle Line Comment
----------------
Create new Gist

こういう右クリックメニューに整理したいと思います。

各拡張機能のコンテクストメニューの項目をいじる


ヘルプ→拡張機能のフォルダーを開く、で開くuserフォルダ内の拡張機能のファイルを編集します。

Brackets Tools

insya.toolsフォルダになります。

insya.tools/lib/stringConvert.jsの中にMenus.getContextMenuを発見しました。
    //var menu = Menus.getMenu(Menus.AppMenuBar.EDIT_MENU);
    var menu = Menus.addMenu(Localize.MENU_LABEL, commandId, Menus.BEFORE, Menus.AppMenuBar.HELP_MENU);
    createNavigation(menu);

    var contextMenu = Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU);
    createNavigation(contextMenu);
普通のメニューとコンテクストメニューは全く同じ項目を追加していますね。
    //var contextMenu = Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU);
    //createNavigation(contextMenu);
コンテクストメニューを追加している部分をすべてコメントアウトしてしまいました。

ファイル→保存。デバッグ→拡張機能付きでリロード。

Remove empty/blank linesからURL Decodeまでの22項目が表示されなくなりました。

Minifier

brackets-minifier/main.jsを編集します。
    //contextMenu.addMenuItem(cmd_min_id)
133行目をコメントアウトしました。

cotextMenuオブジェクトは他に使われていないようなので116行目もコメントアウトしました。

これでMinifyの1項目が消えました。

String Convert

stringconvert/main.jsの238行目と239行目をコメントアウトしました。
    //var contextMenu = Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU);
    //buildMenu(contextMenu);
To Upper CaseからConvert Spaces to Tabsまでの12項目が消えました。

編集に出てくるメニューのTo Upper CaseとTo Lower CaseはBrackets Toolsにもあるためこの項目も消すことにしました。
    var buildMenu = function (m) {
        //m.addMenuDivider();
        //m.addMenuItem(CONVERT_UPPERCASE);
        //m.addMenuItem(CONVERT_LOWERCASE);
        m.addMenuDivider();
201行目から203行目をコメントアウトしました。

Beautify

brackets-beautify/main.jsの305行目から307行目をコメントアウトしました。
    /**
     * Contextual menu
     */
    //CommandManager.register('Beautify', CONTEXTUAL_COMMAND_ID, format);
    //var contextMenu = Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU);
    //contextMenu.addMenuItem(CONTEXTUAL_COMMAND_ID);
Beautifyの1項目が消えました。

Brackets Additional Right Click Menu

deddy.additional-right-click-menu/main.jsを編集します。

この拡張機能では各項目についてメソッドチェーンになっていますので各項目についてコメントアウトします。
    /*
        Register menu
    */
    Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU).addMenuDivider();
    Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU).addMenuItem(RIGHT_CLICK_MENU_CUT_COMMAND_ID);
    Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU).addMenuItem(RIGHT_CLICK_MENU_COPY_COMMAND_ID);
    Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU).addMenuItem(RIGHT_CLICK_MENU_PASTE_COMMAND_ID);
    //Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU).addMenuItem(RIGHT_CLICK_MENU_SELECTALL_COMMAND_ID);
    Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU).addMenuDivider();
    //Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU).addMenuItem(RIGHT_CLICK_MENU_CAMELCASE_COMMAND_ID);
    Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU).addMenuItem(RIGHT_CLICK_MENU_UPPERCASE_COMMAND_ID);
    Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU).addMenuItem(RIGHT_CLICK_MENU_LOWERCASE_COMMAND_ID);
    Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU).addMenuDivider();
    Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU).addMenuItem(RIGHT_CLICK_MENU_BLOCKCOMMENT_COMMAND_ID);
    Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU).addMenuItem(RIGHT_CLICK_MENU_LINECOMMENT_COMMAND_ID);
    Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU).addMenuItem(RIGHT_CLICK_MENU_INDENT_COMMAND_ID);
263行目と265行目をコメントアウトしました。

開発者ツールでみると他の拡張機能と重複していたので266行目と267行目のキーバインディングも削除しました。

Select allとCamel Case、Fix Indent Line/sが消えました。

余談ですがこの拡張機能のメニューはデフォルトメニューからコマンドを引っ張ってきているのが多いですね。

どこにリファレンスがあるのでしょう?

デフォルトの項目の消去方法はわからず



ここまで項目が減りました。

「すべて選択」はどこを編集すれば消去できるのかわかりませんでした。

コンテクストメニューの項目を追加する


Brackets Editor BookmarksのToggle Bookmarkを追加します。

jeffbooher.bookmarks/main.jsを編集します。
   Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU).addMenuItem(CMD_TOGGLE_BOOKMARK);
376行目にメソッドチェーンでToggle Bookmarkをコンテクストメニューに追加しました。

拡張機能の項目の順序がコロコロ変わってしまう



Special HTML CharacterをToggle Line Commentの下にもってきてその下に区切り線を入れることにします。

まずToggle Line CommentのコマンドIDを調べます。

deddy.additional-right-click-menu/main.jsの270行目に載っています。

RIGHT_CLICK_MENU_LINECOMMENT_COMMAND_IDです。

brackets-special-html-chars/main.jsの149行目以降を編集します。
    menu = Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU);
    if (menu) {
        menu.addMenuDivider();
        menu.addMenuItem(COMMAND_ID);
    }
とりあえず159行目と160行目を入れ換えてみたらよくわからないことが起こりました。


Create new Gistと順番が入れ替わってしまいました。

ということで計画を変更してToggle Line Commentの下に区切り線をいれることにしました。

deddy.additional-right-click-menu/main.jsを編集します。
    Menus.getContextMenu(Menus.ContextMenuIds.EDITOR_MENU).addMenuDivider();

Toggle Line Commentの下に区切り線を追加しただけなのにまたもや項目の順番が入れ替わってしまいました。


Bracketsを再起動するとまた順番が変わってしまいました。

もう一度再起動するとその前の順番に戻りました。

うーん、よくわかりませんね。

その後も再起動するたびに順番が入れ替わります、、、なぜじゃ、、、

他の難点は拡張機能がアップデートされるたびに上記の編集をすべてやり直さないといけないことですね。

次の関連記事:linuxBean14.04(16)Bracketsのデバッグ機能を使う

ブログ検索 by Blogger

Translate

最近のコメント

Created by Calendar Gadget

QooQ