如何在插件中为“Open Declaration”(又名F3)注册额外的处理程序/操作/命令?
我想在Java代码中对字符串文字使用 F3 来导航到声明资源包密钥的文件。我已经准备好了一个上下文菜单操作来完成这项工作。所有缺少的是将其绑定到用户习惯的密钥的方法。
完整带注释列表的扩展点的额外功劳。我已经厌倦了不得不花费半天的时间来找到我必须用于功能的扩展点。并且通过“注释”我的意思不仅仅是
Identifier: org.eclipse.ui.workbench.texteditor.quickdiffReferenceProvider
Description: Allows contributors to add reference providers for the quick diff display.
答案 0 :(得分:1)
有关如何实现命令处理程序并将它们绑定到键,菜单和工具栏的详细说明,请参阅Eclipse Commands tutorial中有关键绑定的部分。
Eclipse帮助中提供了full list of extension points,但您必须向下钻取以获取完整的描述和代码示例。插件编辑器中还有一个“添加扩展点”向导,其中显示了简要说明,指向完整帮助的链接以及某些扩展点甚至还有预定义的模板。
答案 1 :(得分:1)
也许你知道这一点,但是虽然F3键盘快捷键不会带你到声明资源包密钥,但有两个类似的东西可以工作:
显然,这两者都需要使用鼠标;如果你是一个只有键盘的人,你可能对这些人不满意。
这并没有直接回答你的问题,但我希望它有所帮助。
答案 2 :(得分:1)
不幸的是,您没有扩展此功能的扩展点。我建议您停止尝试使用Eclipse Command Framework。 JavaEditor不使用该框架来注册其命令,而是在打开编辑器时注册命令。并且第三方没有简单的方法来扩展/改变它。
按下F3时运行的操作是org.eclipse.jdt.ui.actions.OpenAction
。
虽然没有 easy 方法来扩展或更改JavaEditor,但有很多方法可以做到这一点。我推荐的一种方式是通过Equinox Aspects(http://www.eclipse.org/equinox/incubator/aspects/)。这允许您使用AspectJ编织到Eclipse中并根据需要进行更改。
这就是AJDT(http://eclipse.org/ajdt)能够改变JDT工作方式的方式。
在您的特定情况下,我建议创建一个针对OpenAction
类实例化的切入点,并将其替换为您创建的实现。它通常委托JDT的实现,或者在您需要时运行命令。
如果这是您正在寻找的解决方案,那么我可以详细说明如何执行此操作。