【问题标题】:How to override keybindings from a parent scheme in Eclipse 4?如何覆盖 Eclipse 4 中父方案的键绑定?
【发布时间】:2012-11-16 07:35:46
【问题描述】:

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

我在一个示例插件项目中重现了该问题。这是通过关注this tutorial 而创建的。我无法附加项目本身,所以只包含了 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>

【问题讨论】:

    标签: eclipse keyboard-shortcuts


    【解决方案1】:

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

    plugin_customization.ini
    

    它的内容应该是:

    org.eclipse.ui/KEY_CONFIGURATION_ID=test.MyScheme
    

    另请参阅 tutorialchapter here

    【讨论】:

      【解决方案2】:

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

      1. 添加扩展 org.eclipse.e4.workbench.model
      2. 添加处理器片段
      3. 找到有问题的键绑定:MAppliction->MBindingTable->MKeyBinding
      4. 从绑定表中删除键绑定

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-31
        • 2016-04-05
        • 1970-01-01
        • 2011-07-16
        • 2011-11-10
        相关资源
        最近更新 更多