我在 plugin.xml 中注册了一个标准命令,带有处理程序和如下所示的键绑定:
<extension point="org.eclipse.ui.bindings">
<scheme
id="AcmeSchema"
name="ACME Schema">
</scheme>
<key
commandId="org.acme.module.myCommand"
contextId="org.eclipse.ui.contexts.dialogAndWindow"
schemeId="AcmeSchema"
sequence="M1+M2+M3+F6">
</key>
</extension>
一切正常,并且通过IBindingService#openKeyAssistDialog
显示了键绑定。
现在我要禁用该命令。 (我通过向相应的处理程序中添加activeWhen
来完成此操作。)但是仍然显示了键绑定。我尝试通过活动隐藏命令,但仍然显示。密钥绑定本身没有visibleWhen
或类似名称。
这里的问题是,即使该命令在任何地方都不可见,它仍然可以通过快捷键来触发。并且由于未启用它的内部规则,因此执行命令失败。
如何删除不再有效的命令的键绑定?