L'ambito, scope, è utilizzato per definire il contesto opportuno per un'associazione di tasti. Il workbench definisce due ambiti per l'associazione di tasti:
L'ambito determina quando l'associazione di tasti (nella configurazione di tasti attiva) diventa attiva. L'ambito viene dichiarato nel tag dell'associazione di tasti:
... <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>
L'ambito corrente in cui opera il workbench è l'ambito globale, per impostazione predefinita. Quando diventa attivo un editor di testo, questo deve reimpostare l'ambito con l'ambito dell'editor di testo. Questa impostazione viene gestita dal codice del workbench e dell'editor di testo. La maggior parte dei plug-in devono solo determinare l'ambito opportuno per le proprie associazioni di tasti quando le definiscono.
Quando un plug-in definisce un'associazione di tasti, questa viene generalmente assegnata ad un ambito esistente. Tuttavia, se viene definito un nuovo stile di editor, è possibile che si desideri introdurre anche un nuovo ambito per le associazioni di tasti. Ad esempio, un editor multipagina può avere ambiti differenti per ciascuna pagina dell'editor.
Al momento di definire un ambito, è compito del plug-in verificare che gli ambiti corretti siano opportunamente impostati per l'editor in IKeyBindingService. Una trattazione completa su come ciò avvenga va oltre l'"ambito" di questa documentazione. Per ulteriori dettagli, fare riferimento a IKeyBindingService e ai relativi implementatori.
I plug-in definiscono gli ambiti nel punto di estensione org.eclipse.ui.commands. Il tag del workbench per gli ambiti globale e di editor di testo si trovano alla fine della definizione dell'estensione:
<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>