【问题标题】:How to programatically detect the key binding of an commnand for eclipse plugins?如何以编程方式检测 Eclipse 插件命令的键绑定?
【发布时间】:2009-12-23 04:37:46
【问题描述】:

我正在使用 Eclipse 插件基础架构扩展 Eclipse,但遇到了一个问题,我不知道如何解决:

我有一个带有热键的命令。我还有一个需要从 Eclipse 中窃取键绑定的编辑器(禁用 IBindingService 中的键过滤器)。但是,这个命令足够“重要”,它的热键仍然需要工作。目前,在那个特定的编辑器中,在我正在侦听关键事件的部分中,我检查该命令的默认键绑定是什么,并在检测到它时手动启动它。显而易见的问题是,如果更改了命令的键绑定,它仍然使用该编辑器中的默认绑定。有什么方法可以轻松访问特定命令的键绑定,以便我可以检查它而不是简单地使用默认命令?

我意识到这个解决方案不能在不同的编辑器之间移植,但这是我唯一需要担心的编辑器,所以我真的不介意这个特殊的外壳。

【问题讨论】:

    标签: java eclipse


    【解决方案1】:

    你需要使用org.eclipse.ui.keys.IBindingService获取它有点棘手,通过org.eclipse.ui.PlatformUI

    IBindingService bindingService = (IBindingService) PlatformUI.getWorkbench().getAdapter(IBindingService.class);
    bindingService.getBestActiveBindingFormattedFor(CMDID); 
    

    CMDID 是您在 plugin.xml 中定义的命令 ID。

    【讨论】:

    • 太棒了,效果很好。我改用 getActiveBindings ,因为我希望它能够处理所有绑定,但它现在可以工作了。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 2021-04-18
    相关资源
    最近更新 更多