アクセラレーター・スコープは、アクセラレーター・キーの適切なコンテキストを定義するために使用されます。 ワークベンチは 2 つのアクセラレーター・スコープを定義します。
スコープは、(アクティブなアクセラレーター構成内の) アクセラレーター・セットがアクティブと見なされる場合に必要とされます。 スコープは、アクセラレーター・セット・マークアップ内で宣言されます。
<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>