方案

方案用来表示绑定的一般样式或主题。例如,工作台提供了“Default”方案和“Emacs”方案。在任何给定时刻都只有一个方案处于活动状态。最终用户使用常规首选项对话框来控制哪个配置处于活动状态。

从实现的角度来看,方案仅仅是已命名的绑定分组。除非有绑定与方案相关联,否则方案自己不会完成任何操作。   

让我们再次查看 org.eclipse.ui.bindings 的工作台标记以查找绑定定义并了解方案如何与绑定相关联。

...
<key
       sequence="Ctrl+S"
       commandId="org.eclipse.ui.file.save"
       schemeId="org.eclipse.ui.defaultAcceleratorConfiguration">
</key>
...
<key
       sequence="Ctrl+X Ctrl+S"
       commandId="org.eclipse.ui.file.save"
       schemeId="org.eclipse.ui.emacsAcceleratorConfiguration">
</key>
...

为“org.eclipse.ui.file.save”命令定义了两个不同的键绑定。注意,为每个键绑定定义了不同的 schemeId。当 default 方案处于活动状态时,“Ctrl+S”键绑定将调用该命令。当 emacs 方案处于活动状态时,序列“Ctrl+X Ctrl+S”将调用该命令。

定义新方案

当插件定义绑定时,最有可能的情况是将它指定给现有方案。但是,插件可能想要定义全新的方案样式。如果是这样,请在 org.eclipse.ui.bindings 定义中定义新的方案类型。定义 default 和 emacs 键配置的工作台标记如下所示:

...
<scheme
       name="%keyConfiguration.default.name"
       description="%keyConfiguration.default.description"
       id="org.eclipse.ui.defaultAcceleratorConfiguration">
</scheme>
<scheme
       name="%keyConfiguration.emacs.name"
       parentId="org.eclipse.ui.defaultAcceleratorConfiguration"
       description="%keyConfiguration.emacs.description"
       id="org.eclipse.ui.emacsAcceleratorConfiguration">
</scheme>
...

注意,此处定义的 name 就是在首选项页面中的方案列表中使用的名称。

激活方案

用户通过首选项页面控制活动方案。但是,可以将缺省活动方案定义成“plugin_customization.ini”文件的一部分。它是一个首选项:

org.eclipse.ui/KEY_CONFIGURATION_ID=org.eclipse.ui.defaultAcceleratorConfiguration