範圍是用來定義快速鍵連結的適當環境定義。工作台定義兩個快速鍵連結範圍:
範圍指定快速鍵連結(在作用中的快速鍵配置)何時可視為作用中。範圍是在快速鍵連結標記中宣告:
... <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>
如何判定現行範圍?依預設,工作台是在廣域範圍中運作。 當文字編輯器變成作用中時,它負責將範圍重設為文字編輯器範圍。 這全都由工作台和文字編輯器程式碼所處理。 大部分外掛程式僅需要在定義它們的快速鍵連結時,判定這些快速鍵連結的適當範圍。
當外掛程式定義快速鍵連結時,它通常會將它指定給現有的範圍。 然而,如果外掛程式定義新的編輯器樣式,您可能也想要為快速鍵連結引進新的範圍。 舉例來說,多頁編輯器的每一頁在編輯器中可能有不同的範圍。
當您自行定義範圍時,根據外掛程式的需求確定已設定適當的範圍在 IKeyBindingService ,也為編輯器設定適當的範圍。關於如何作用(雙關語!)的完整討論則超出範圍。請參閱 IKeyBindingService 和實作者以取得詳細資料。
外掛程式定義它們在 org.eclipse.ui.commands 延伸點內(其他地方)的範圍。 廣域和文字編輯器範圍的工作台標記位於延伸項目定義的底端:
<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>