2017-10-05 26 views
1

我的自定義Eclipse編輯器覆蓋createAction,它在編輯器中註冊了IAction。然後,在editorContextMenuAboutToShow我將此操作添加到菜單。Eclipse:如何在編輯器上下文菜單上添加一個綁定到動作的鍵綁定

一切工作正常,因爲該操作出現在編輯器中的上下文菜單上;我可以從菜單本身調用該操作。

現在,我想爲此操作添加一個鍵綁定。到目前爲止,我已經爲我的plugin.xml添加了三個擴展:一個命令,一個綁定和一個上下文。我實際上可以看到命令/綁定/上下文顯示在按鍵首選項中。

至於將命令綁定到我的操作,我已在createActions中創建操作本身之後,將在plugin.xml中聲明的命令ID作爲參數傳遞給setActionDefinitionId

不用說,鍵綁定不會調用動作 - 因此這個問題。我錯過了哪些步驟?

+0

我確實設法讓我的命令的'contextId'設置爲'org.eclipse.ui.contexts.window',而不是id我已經定義的上下文....問題然後變成我如何「綁定」我的上下文到我的編輯器? – biosbob

回答

1

在基於文本編輯的編輯器,我不得不接觸這些地方,以提供一鍵綁定一個動作:

  • 定義一個命令,鍵綁定和範圍(像你一樣)

  • 設置actionDefinitionId創造createActions()動作後,以匹配命令ID(像你一樣)

  • ,我不得不打電話setAction(myAction.getActionDefinitionId(), myAction);

  • 設定setKeyBindingScopes(new String[]{ "org.example.myScope" });

是否幫助在initializeKeyBindingScopes()範圍有多大?

+0

是的,它做到了....它重寫了我失蹤的'initializeKeyBindScopes' .... – biosbob

相關問題