エディタのキーバインディング

エディタのキーバインディング。まだよくわかってないんだけど、こんな感じで動きました。

   <extension
         point="org.eclipse.ui.commands">

      <category
            name="Hoge Editor"
            description="aaa"
            id="com.muimi.hoge.command.category">
      </category>

      <scope
            id="com.muimi.hoge.hogeScope"
            name="Hoge Editor"
            parent="org.eclipse.ui.textEditorScope"
            description="Hoge Editor Scope"
            >
      </scope>

      <command
            id="mytest.open"
            name="open"
            category="com.muimi.hoge.command.category"
            >
      </command>

      <keyBinding
            string="F3"
            scope="com.muimi.hoge.hogeScope"
            command="mytest.open"
            configuration="org.eclipse.ui.defaultAcceleratorConfiguration">
      </keyBinding>

   </extension>

この例ではF3キーをわりあてている。mytest.openというIDが前のリターゲットのアクションのdefinitionIdに指定してある(特に別にactionを指定しなくてもいいかもしれない)。


スコープを新たに作成してある。作成したスコープとキーバインドは、ウィンドウ→設定→ワークベンチ→キー で確認できる。グローバルなスコープに他のプラグインと同じキーを割り当てると競合する(のが確認できる)。


スコープを新たに作成した場合、Editorクラスで、initializeKeyBindingScopes()メソッドをオーバーライドして、スコープを設定する必要がある(これで結構はまった。マニュアルには書いてはある)。

protected void initializeKeyBindingScopes() {
    setKeyBindingScopes(new String[] { "com.muimi.hoge.hogeScope" }); 
}