2012-11-28 52 views
2

我正在升級RCP應用程序以使用Eclipse 4.2.1。我遇到的一個問題是我的自定義方案中的鍵綁定不再覆蓋Eclipse鍵綁定。如何覆蓋Eclipse 4中父級方案的keybindings?

我已經在示例插件項目中重現了該問題。這是通過跟隨,然後改編this tutorial而創建的。我無法附加項目本身,所以只包含了plugin.xml文件的內容。

我有自己的方案,它擴展了默認方案:

<scheme 
     id="test.MyScheme" 
     name="My Scheme" 
     parentId="org.eclipse.ui.defaultAcceleratorConfiguration"> 
    </scheme> 

我有一個鍵綁定按Ctrl +ñ一個命令:

<key 
     commandId="test.MyCommand" 
     contextId="org.eclipse.ui.contexts.window" 
     schemeId="test.MyScheme" 
     sequence="M1+N"> 
    </key> 

在Eclipse 3.7.2 ,按Ctrl + 會運行我的命令。

在Eclipse 4.2.1中,它彈出一個框讓我選擇運行我的命令並啓動「新建」嚮導。我需要做些什麼才能恢復原來的行爲?

下面是plugin.xml的全部內容。

<?xml version="1.0" encoding="UTF-8"?> 
<?eclipse version="3.4"?> 
<plugin> 

    <extension 
     id="application" 
     point="org.eclipse.core.runtime.applications"> 
     <application> 
     <run 
       class="test.Application"> 
     </run> 
     </application> 
    </extension> 
    <extension 
     point="org.eclipse.ui.perspectives"> 
     <perspective 
      name="RCP Perspective" 
      class="test.Perspective" 
      id="test.perspective"> 
     </perspective> 
    </extension> 
    <extension 
     point="org.eclipse.ui.commands"> 
     <command 
      defaultHandler="test.MyCommandHandler" 
      id="test.MyCommand" 
      name="My Command"> 
     </command> 
    </extension> 
    <extension 
     point="org.eclipse.ui.menus"> 
     <menuContribution 
      allPopups="false" 
      locationURI="menu:org.eclipse.ui.main.menu"> 
     <menu 
       id="fileMenu" 
       label="File"> 
      <command 
        commandId="test.MyCommand" 
        label="My Command" 
        style="push"> 
      </command> 
     </menu> 
     </menuContribution> 
    </extension> 
    <extension 
     point="org.eclipse.ui.bindings"> 
     <key 
      commandId="test.MyCommand" 
      contextId="org.eclipse.ui.contexts.window" 
      schemeId="test.MyScheme" 
      sequence="M1+N"> 
     </key> 
     <scheme 
      id="test.MyScheme" 
      name="My Scheme" 
      parentId="org.eclipse.ui.defaultAcceleratorConfiguration"> 
     </scheme> 
    </extension> 
    <extension 
     id="product" 
     point="org.eclipse.core.runtime.products"> 
     <product 
      application="test.application" 
      name="My Product"> 
     <property 
       name="appName" 
       value="My Product"> 
     </property> 
     <property 
       name="preferenceCustomization" 
       value="plugin_customization.ini"> 
     </property> 
     </product> 
    </extension> 

</plugin> 

回答

0

舊的機制似乎只是不工作,但有另一種方法。

  1. 添加擴展org.eclipse.e4.workbench.model
  2. 添加處理器片段
  3. 查找違規鍵結合:MAppliction-> MBindingTable-> MKeyBinding
  4. 拔出鑰匙從結合結合表
0

下面的文件可能丟失你的插件目錄中旁邊的plugin.xml:

plugin_customization.ini 

它的內容應該是:

org.eclipse.ui/KEY_CONFIGURATION_ID=test.MyScheme 

也看,這tutorialchapter here