アクセラレーター・スコープは、アクセラレーター・キーの適切なコンテキストを定義するために使用されます。 ワークベンチは 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>