動作定義和呼叫動作之快速鍵組合之間的關聯稱為加速器。加速器集為許多加速器的組合。外掛程式使用 org.eclipse.ui.acceleratorSets 延伸點提供加速器集。工作台定義提供 Emacs 類快速鍵連結的加速器集:
<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> ...
這是 org.eclipse.ui.file.save。恢復我們假設的動作定義:
<extension point = "org.eclipse.ui.actionSets"> <actionSet id="com.example.actions.actionSet" label="Example Actions" visible="true"> <action id="com.example.actions.action1" menubarPath="additions" label="Example Save Action" class="org.example.actions.ExampleActionDelegate" definitionID="org.eclipse.ui.file.save"> </action> ... </actionSet> </extension>
當我們的範例動作集為作用中時,使用者選取 Ctrl+S 之後 再選取 Ctrl+X,將啟動儲存動作。(|| 的用法,如 "Ctrl+Shift+F4||Ctrl+X Ctrl+C" 表示可用來啟動動作的快速鍵連結。 )
當工作台 SaveAction 在作用中時,相同的鍵組合將呼叫它, 因為工作台為 SaveAction 使用相同動作定義 ID。
要完成這個範例,我們需要瞭解什麼是 scopeID 和 configurationId。首先,先處理配置架構。