【问题标题】:Eclipse: how do you add a key binding to an action on an editor context menuEclipse:如何将键绑定添加到编辑器上下文菜单上的操作
【发布时间】:2018-03-17 07:13:27
【问题描述】:

我的自定义 Eclipse 编辑器覆盖 createAction,它在编辑器中注册了一个 IAction。然后,在editorContextMenuAboutToShow 中,我将此操作添加到菜单中。

一切正常,因为该操作出现在编辑器的上下文菜单中;我可以从菜单本身调用操作。

现在,我想为此操作添加一个键绑定。到目前为止,我已经为我的 plugin.xml 添加了三个扩展:一个命令、一个绑定和一个上下文。我实际上可以在键首选项中看到命令/绑定/上下文。

至于将命令绑定到我的操作,在createActions 中创建操作本身后,我已将plugin.xml 中声明的命令ID 作为参数传递给setActionDefinitionId

不用说,键绑定不会调用操作 - 因此这个问题。我错过了哪些步骤?

【问题讨论】:

  • 我确实设法通过将我的命令的contextId 设置为org.eclipse.ui.contexts.window 而不是将id 设置为我定义的上下文来实现这一点......然后问题就变成了如何我是否将我的上下文“绑定”到我的编辑器???

标签: eclipse-plugin eclipse-rcp


【解决方案1】:

在基于 TextEditor 的编辑器中,我必须触摸这些地方才能提供具有键绑定的操作:

  • 定义一个命令、键绑定和范围(就像你做的那样)

  • 将 actionDefinitionId 设置为与命令 id 匹配(如您所做的那样)

  • createActions() 中创建动作后,我不得不调用setAction( myAction.getActionDefinitionId(), myAction );

  • initializeKeyBindingScopes() 中使用setKeyBindingScopes( new String[]{ "org.example.myScope" } ); 设置范围

这有帮助吗?

【讨论】:

  • 是的,做到了....它覆盖了我错过的initializeKeyBindScopes....
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
  • 2021-07-09
  • 1970-01-01
  • 2014-07-07
  • 2010-12-14
  • 1970-01-01
相关资源
最近更新 更多