加速键作用域

加速键作用域用来为加速键定义相应上下文。工作台定义两个加速键作用域:

作用域指示何时加速键集(在活动加速键配置中)被认为是活动的。 作用域是在加速键集标记中声明的:

<extension
      point="org.eclipse.ui.acceleratorSets">
   <acceleratorSet
         scopeId="org.eclipse.ui.globalScope"
         configurationId="org.eclipse.ui.emacsAcceleratorConfiguration">
      <accelerator
            key="Ctrl+F4||Ctrl+X Ctrl+K"
            id="org.eclipse.ui.file.close">
      </accelerator>
      <accelerator
            key="Ctrl+Shift+F4||Ctrl+X Ctrl+C"
            id="org.eclipse.ui.file.closeAll">
      </accelerator>
      <accelerator
            key="Ctrl+X Ctrl+S"
            id="org.eclipse.ui.file.save">
      </accelerator>
      ...

当前作用域是如何确定的?缺省情况下,工作台在全局作用域内运行。 当文本编辑器活动时,它将负责将作用域复位为文本编辑器作用域。 这是由工作台和文本编辑器代码处理的。大多数插件在定义它们时, 仅需要为它们的加速键集确定相应的作用域。

定义新的加速键作用域

插件定义加速键集时,它通常将其分配给现有加速键作用域。但是, 如果插件定义新样式的编辑器,则您可能还想为加速键引入新作用域。例如, 对于多页编辑器,编辑器中的每页可能具有不同的作用域。

定义自已的作用域时,由您的插件来确保将相应的作用域根据编辑器的需要设置到 IKeyBindingService 中。 如何进行的详细讨论已超出了此文档的范围(双关语)。有关更多详细信息, 参考 IKeyBindingService 及其实现程序。

插件使用 org.eclipse.ui.acceleratorScopes 扩展点定义加速键作用域。下面显示全局和文本编辑器加速键配置的工作台标记:

<extension
    point="org.eclipse.ui.acceleratorScopes">
      <acceleratorScope
            name="%GlobalAcceleratorScope.name"
            description="%GlobalAcceleratorScope.description"
            id="org.eclipse.ui.globalScope">
      </acceleratorScope>
      <acceleratorScope
            name="%TextEditorAcceleratorScope.name"
            parentScope="org.eclipse.ui.globalScope"
            description="%TextEditorAcceleratorScope.description"
            id="org.eclipse.ui.textEditorScope">
      </acceleratorScope>
</extension>

Copyright IBM Corp. and others 2000,2002.