スコープは、キー・バインディングに適切なコンテキストを定義するために使用されます。 ワークベンチは、以下の 2 つのキー・バインディングのスコープを定義します。
スコープは、(アクティブ・キー構成内の) キー・バインディングがいつアクティブと見なされるかを指示します。 スコープは、次のようにキー・バインディング・マークアップ内で宣言されます。
... <keyBinding string="Ctrl+S" scope="org.eclipse.ui.globalScope" command="org.eclipse.ui.file.save" configuration="org.eclipse.ui.defaultAcceleratorConfiguration"> </keyBinding> ... <keyBinding string="Ctrl+X Ctrl+S" scope="org.eclipse.ui.globalScope" command="org.eclipse.ui.file.save" configuration="org.eclipse.ui.emacsAcceleratorConfiguration"> </keyBinding>
現行スコープはどのように判別されるのでしょうか? デフォルトでは、ワークベンチはグローバル・スコープで機能します。 テキスト・エディターがアクティブになると、 テキスト・エディターが、スコープをテキスト・エディター・スコープにリセットします。 これはすべて、ワークベンチおよびテキスト・エディター・コードによって処理されます。 多くのプラグインは、キー・バインディングを定義するときにのみ、 キー・バインディングに適切なスコープを判別する必要があります。
プラグインがキー・バインディングを定義するとき、通常、既存のスコープが割り当てられます。 ただし、プラグインが新しいスタイルのエディターを定義する場合、 キー・バインディング用の新しいスコープを導入することもできます。 例えば、マルチページ・エディターは、エディター内の各ページごとにさまざまなスコープを持つことができます。
所有するスコープを定義するときは、正しいスコープがエディターの必要に応じて、 IKeyBindingService に設定されるようにすることは、 プラグインの責任で行います。 操作方法の詳しい説明は、この文書の範囲外です。 詳細については、IKeyBindingService、 およびそのインプリメンターを参照してください。
プラグインは、org.eclipse.ui.commands 拡張ポイント内 (他の場所は?) にそのスコープを定義します。 グローバルおよびテキスト・エディター・スコープのワークベンチ・マークアップは、 次のように拡張定義の下部にあります。
<extension point="org.eclipse.ui.commands"> ... <scope name="%scope.global.name" description="%scope.global.description" id="org.eclipse.ui.globalScope"> </scope> <scope name="%scope.text.name" parent="org.eclipse.ui.globalScope" description="%scope.text.description" id="org.eclipse.ui.textEditorScope"> </scope> </extension>