代码之家  ›  专栏  ›  技术社区  ›  DivineWolfwood

如何通过编程检测Eclipse插件的command键绑定?

  •  3
  • DivineWolfwood  · 技术社区  · 15 年前

    我正在使用Eclipse插件基础设施扩展Eclipse,我遇到了一个问题,我不太清楚如何解决:

    我有一个命令有一些热键。我还有一个需要从Eclipse中窃取键绑定的编辑器(在IBindingService中禁用键过滤器)。但是,这个命令“非常重要”,它的热键仍然需要工作。目前,在那个特定的编辑器中,在我监听关键事件的部分,我检查该命令的默认键绑定是什么,如果它检测到了,就手动启动它。这方面的明显问题是,如果更改了命令的键绑定,那么只在该编辑器中使用默认绑定。是否有某种方法可以轻松地访问特定命令的键绑定,这样我就可以检查它,而不仅仅是默认的键绑定?

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

    1 回复  |  直到 15 年前
        1
  •  5
  •   zvikico    15 年前

    你需要使用 org.eclipse.ui.keys.IBindingService 弄到它有点难,通过 org.eclipse.ui.PlatformUI 以下内容:

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

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