Une portée de raccourcis est utilisée pour définir le contexte adapté aux touches. Le plan de travail définit deux portées :
La portée détermine à quel moment un jeu de raccourcis (dans la configuration de raccourcis active) est considéré actif. La portée est déclarée dans les marques du jeu de raccourcis :
<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+Maj+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> ...
Comment déterminer la portée actuelle ? Par défaut, le plan de travail fonctionne dans une portée globale. Lorsqu'un éditeur de texte est actif, il est responsable de réinitialiser la portée à celle d'éditeur de texte. Tout ceci est géré par le code du plan de travail et de l'éditeur de texte. La plupart des plug-in doivent déterminer la portée appropriée à leurs jeux de raccourcis au moment de les définir.
Lorsqu'un plug-in définit un jeu de raccourcis clavier, il l'assigne généralement à une portée existante. Toutefois, si votre plug-in définit un nouveau style d'éditeur, vous pouvez également introduire une nouvelle portée pour les combinaisons de touches. Par exemple, un éditeur multipage peut posséder plusieurs portées pour chaque page.
Lorsque vous définissez votre propre portée, votre plug-in doit s'assurer que les portées sont définies dans IKeyBindingService comme adapté à votre éditeur. Ce sujet va au-delà du thème de cette documentation. Reportez-vous à IKeyBindingService et ses réalisateurs pour en savoir plus.
Les plug-in définissent des portées de raccourcis à l'aide du point d'extension org.eclipse.ui.acceleratorScopes. Les marques du plan de travail pour les configurations globale et d'éditeur de texte se présentent comme suit :
<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>