2

我正在升级 RCP 应用程序以使用 Eclipse 4.2.1。我遇到的问题之一是我的自定义方案中的键绑定不再覆盖 Eclipse 键绑定。

我在一个示例插件项目中重现了这个问题。这是通过遵循然后改编本教程创建的。我无法附加项目本身,所以只包含了 plugin.xml 文件的内容。

我有自己的方案,它扩展了默认方案:

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

我有一个带有键绑定Ctrl+的命令N

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

在 Eclipse 3.7.2 中,按Ctrl+N将运行我的命令。

在 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>
4

2 回答 2

0

旧机制似乎不起作用,但还有另一种方法。

  1. 添加扩展 org.eclipse.e4.workbench.model
  2. 添加处理器片段
  3. 找到有问题的键绑定:MAppliction->MBindingTable->MKeyBinding
  4. 从绑定表中删除键绑定
于 2012-12-20T16:48:32.560 回答
0

plugin.xml 旁边的插件目录中可能缺少以下文件:

plugin_customization.ini

它的内容应该是:

org.eclipse.ui/KEY_CONFIGURATION_ID=test.MyScheme

另请参阅本教程此处的章节

于 2015-10-13T14:13:55.617 回答