如何以编程方式检测eclipse插件的commnand的键绑定?

Div*_*ood 3 java eclipse

我正在使用Eclipse插件基础架构扩展Eclipse,我遇到了一个问题,我无法弄清楚如何解决这个问题:

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

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

zvi*_*ico 5

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

IBindingService bindingService = (IBindingService) PlatformUI.getWorkbench().getAdapter(IBindingService.class);
bindingService.getBestActiveBindingFormattedFor(CMDID); 
Run Code Online (Sandbox Code Playgroud)

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