Um escopo do acelerador é utilizado para definir o contexto apropriado das teclas aceleradoras. O workbench define dois escopos do acelerador:
O escopo indica quando um conjunto de aceleradores (na configuração de acelerador ativa) é considerado ativo. O escopo é declarado na marcação do conjunto de aceleradores:
<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> ...
Como o escopo atual está determinado? Por padrão, o workbench opera em um escopo global. Quando um editor de texto se torna ativo, ele é responsável pela redefinição do escopo no escopo do editor de texto. Isso é tratado pelo código do workbench e do editor de texto. A maioria dos plug-ins precisam apenas determinar o escopo apropriado de seus conjuntos de aceleradores ao defini-los.
Quando um plug-in define um conjunto de aceleradores, ele geralmente o atribui a um escopo de acelerador existente. Entretanto, se seu plug-in definir um novo estilo de editor, é possível que você também queira introduzir um novo escopo para teclas aceleradoras. Por exemplo, um editor com várias páginas pode ter escopos diferentes para cada página no editor.
Ao definir o novo escopo, cabe ao plug-in assegurar que os escopos adequados sejam definidos no IKeyBindingService conforme apropriado para seu editor. Uma discussão completa de como isso funciona está além do escopo desta documentação. Consulte o IKeyBindingService e seus implementadores para obter mais detalhes.
Os plug-ins definem escopos de aceleradores utilizando o ponto de extensão org.eclipse.ui.acceleratorScopes. A marcação do workbench para as configurações global e do editor de texto é mostrada a seguir:
<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>