アクセラレーター・スコープ

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

Copyright IBM Corp. and others 2000,2002.