gist

2012年2月2日木曜日

[Node.js] Cloud9 IDEにショートカットを追加しよう

Cloud9 IDEにショートカットを追加してみます。

画面左のファイル一覧(Project Files)ですが、時々上手く更新されないようで、いつもボタンでリフレッシュしていました。そこで今回はCtrl+Rでリフレッシュするようにショートカットを追加してみます。ついでにコマンドラインでもリフレッシュできるようにしてみます。

キーバインドを追加するには、cloud9の拡張機能を少し修正します。修正は2ヶ所です。

keybindings_defaultは、Cloud9のキーバインドの実装です。ここのdefault_mac.jsの最後の方にバインディングを追加します。

cloud9/client/ext/keybindings_default/default_mac.js


return keys.onLoad({
    "ext" : {
        "console" : {
            "switchconsole": "Shift-Esc"
        },
        "save" : {
            "quicksave": "Command-S",
            "saveas": "Command-Shift-S",
     "reverttosaved": "Command-Shift-Q"
        },

        .....

        // 最後の方に追加。
        "tree" : {
            "refresh" : "Ctrl-R"
        }
    }
});

treeというのが、ファイル一覧(Project Files)の実装です。ここにcommandsとhotitemsを追加し、hookメソッドにキーバインドを追加します。

cloud9/client/ext/tree/tree.js

module.exports = ext.register("ext/tree/tree", {
    name             : "Project Files",
    dev              : "Ajax.org",
    alone            : true,
    type             : ext.GENERAL,
    markup           : markup,

    .......
    
    // コマンドを追加。これで画面下のコマンドラインに追加されます
    commands : {
        "refresh" : {hint : "Refresh Project Files Tree"}
    },
    
    // hotitemsオブジェクトを生成
    hotitems : {},

    .......

    hook : function(){
        panels.register(this, {
            position : 1000,
            caption: "Project Files",
            "class": "project_files"
        });
        // キーバインドを追加します
        this.hotitems.keybindings = [this.nodes[0]];
    },

cloud9を再起動すると有効になります。

コマンドも有効になりました。

関連ページ

この完成度に震えが止まらない!Node.js史上最高のIDE、Cloud9をインストールしよう。

0 件のコメント: