diff options
author | Benjamin Pasero <benjamin.pasero@microsoft.com> | 2022-06-09 09:41:12 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-06-09 09:41:12 +0300 |
commit | 54ae4d8ccbf4574889c24b086079a745b3debf96 (patch) | |
tree | 59d8dde0366f154dfe09ba23e4e1c672b1e376c0 | |
parent | 640898db17d39b80723a0bf77fc9574dab67420f (diff) |
Convert history commands to `Action2` (#151524)
* Convert history commands to `Action2`
* address feedback
* address comments
-rw-r--r-- | src/vs/workbench/browser/parts/editor/editor.contribution.ts | 31 | ||||
-rw-r--r-- | src/vs/workbench/browser/parts/editor/editorActions.ts | 69 |
2 files changed, 55 insertions, 45 deletions
diff --git a/src/vs/workbench/browser/parts/editor/editor.contribution.ts b/src/vs/workbench/browser/parts/editor/editor.contribution.ts index d8cea442776..6343fd24e4f 100644 --- a/src/vs/workbench/browser/parts/editor/editor.contribution.ts +++ b/src/vs/workbench/browser/parts/editor/editor.contribution.ts @@ -23,7 +23,7 @@ import { TextDiffEditor } from 'vs/workbench/browser/parts/editor/textDiffEditor import { BinaryResourceDiffEditor } from 'vs/workbench/browser/parts/editor/binaryDiffEditor'; import { ChangeEncodingAction, ChangeEOLAction, ChangeLanguageAction, EditorStatus } from 'vs/workbench/browser/parts/editor/editorStatus'; import { IWorkbenchActionRegistry, Extensions as ActionExtensions, CATEGORIES } from 'vs/workbench/common/actions'; -import { SyncActionDescriptor, MenuRegistry, MenuId, IMenuItem } from 'vs/platform/actions/common/actions'; +import { SyncActionDescriptor, MenuRegistry, MenuId, IMenuItem, registerAction2 } from 'vs/platform/actions/common/actions'; import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; import { KeyMod, KeyChord, KeyCode } from 'vs/base/common/keyCodes'; import { @@ -244,8 +244,6 @@ registry.registerWorkbenchAction(SyncActionDescriptor.from(NewEditorGroupLeftAct registry.registerWorkbenchAction(SyncActionDescriptor.from(NewEditorGroupRightAction), 'View: New Editor Group to the Right', CATEGORIES.View.value); registry.registerWorkbenchAction(SyncActionDescriptor.from(NewEditorGroupAboveAction), 'View: New Editor Group Above', CATEGORIES.View.value); registry.registerWorkbenchAction(SyncActionDescriptor.from(NewEditorGroupBelowAction), 'View: New Editor Group Below', CATEGORIES.View.value); -registry.registerWorkbenchAction(SyncActionDescriptor.from(NavigateForwardAction, { primary: 0, win: { primary: KeyMod.Alt | KeyCode.RightArrow }, mac: { primary: KeyMod.WinCtrl | KeyMod.Shift | KeyCode.Minus }, linux: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.Minus } }), 'Go Forward'); -registry.registerWorkbenchAction(SyncActionDescriptor.from(NavigateBackwardsAction, { primary: 0, win: { primary: KeyMod.Alt | KeyCode.LeftArrow }, mac: { primary: KeyMod.WinCtrl | KeyCode.Minus }, linux: { primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.Minus } }), 'Go Back'); registry.registerWorkbenchAction(SyncActionDescriptor.from(NavigatePreviousAction), 'Go Previous'); registry.registerWorkbenchAction(SyncActionDescriptor.from(NavigateForwardInEditsAction), 'Go Forward in Edit Locations'); registry.registerWorkbenchAction(SyncActionDescriptor.from(NavigateBackwardsInEditsAction), 'Go Back in Edit Locations'); @@ -273,6 +271,9 @@ registry.registerWorkbenchAction(SyncActionDescriptor.from(QuickAccessPreviousRe registry.registerWorkbenchAction(SyncActionDescriptor.from(QuickAccessLeastRecentlyUsedEditorInGroupAction, { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.Tab, mac: { primary: KeyMod.WinCtrl | KeyMod.Shift | KeyCode.Tab } }, ActiveEditorGroupEmptyContext.toNegated()), 'View: Quick Open Least Recently Used Editor in Group', CATEGORIES.View.value); registry.registerWorkbenchAction(SyncActionDescriptor.from(QuickAccessPreviousEditorFromHistoryAction), 'Quick Open Previous Editor from History'); +registerAction2(NavigateForwardAction); +registerAction2(NavigateBackwardsAction); + const quickAccessNavigateNextInEditorPickerId = 'workbench.action.quickOpenNavigateNextInEditorPicker'; KeybindingsRegistry.registerCommandAndKeybindingRule({ id: quickAccessNavigateNextInEditorPickerId, @@ -314,9 +315,6 @@ if (isMacintosh) { }); } -MenuRegistry.appendMenuItem(MenuId.CommandCenter, { order: 1, command: { id: NavigateBackwardsAction.ID, title: NavigateBackwardsAction.LABEL, icon: Codicon.arrowLeft } }); -MenuRegistry.appendMenuItem(MenuId.CommandCenter, { order: 2, command: { id: NavigateForwardAction.ID, title: NavigateForwardAction.LABEL, icon: Codicon.arrowRight } }); - // Empty Editor Group Toolbar MenuRegistry.appendMenuItem(MenuId.EmptyEditorGroup, { command: { id: UNLOCK_GROUP_COMMAND_ID, title: localize('unlockGroupAction', "Unlock Group"), icon: Codicon.lock }, group: 'navigation', order: 10, when: ActiveEditorGroupLockedContext }); MenuRegistry.appendMenuItem(MenuId.EmptyEditorGroup, { command: { id: CLOSE_EDITOR_GROUP_COMMAND_ID, title: localize('closeGroupAction', "Close Group"), icon: Codicon.close }, group: 'navigation', order: 20 }); @@ -775,27 +773,6 @@ MenuRegistry.appendMenuItem(MenuId.MenubarLayoutMenu, { // Main Menu Bar Contributions: -// Forward/Back -MenuRegistry.appendMenuItem(MenuId.MenubarGoMenu, { - group: '1_history_nav', - command: { - id: 'workbench.action.navigateBack', - title: localize({ key: 'miBack', comment: ['&& denotes a mnemonic'] }, "&&Back"), - precondition: ContextKeyExpr.has('canNavigateBack') - }, - order: 1 -}); - -MenuRegistry.appendMenuItem(MenuId.MenubarGoMenu, { - group: '1_history_nav', - command: { - id: 'workbench.action.navigateForward', - title: localize({ key: 'miForward', comment: ['&& denotes a mnemonic'] }, "&&Forward"), - precondition: ContextKeyExpr.has('canNavigateForward') - }, - order: 2 -}); - MenuRegistry.appendMenuItem(MenuId.MenubarGoMenu, { group: '1_history_nav', command: { diff --git a/src/vs/workbench/browser/parts/editor/editorActions.ts b/src/vs/workbench/browser/parts/editor/editorActions.ts index a993829e847..bf39a77a241 100644 --- a/src/vs/workbench/browser/parts/editor/editorActions.ts +++ b/src/vs/workbench/browser/parts/editor/editorActions.ts @@ -26,6 +26,11 @@ import { Codicon } from 'vs/base/common/codicons'; import { IFilesConfigurationService, AutoSaveMode } from 'vs/workbench/services/filesConfiguration/common/filesConfigurationService'; import { IEditorResolverService } from 'vs/workbench/services/editor/common/editorResolverService'; import { isLinux, isNative, isWindows } from 'vs/base/common/platform'; +import { Action2, MenuId } from 'vs/platform/actions/common/actions'; +import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; +import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; +import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; +import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; export class ExecuteCommandAction extends Action { @@ -1258,39 +1263,67 @@ export class OpenLastEditorInGroup extends AbstractNavigateEditorAction { } } -export class NavigateForwardAction extends Action { +export class NavigateForwardAction extends Action2 { static readonly ID = 'workbench.action.navigateForward'; static readonly LABEL = localize('navigateForward', "Go Forward"); - constructor( - id: string, - label: string, - @IHistoryService private readonly historyService: IHistoryService - ) { - super(id, label); + constructor() { + super({ + id: NavigateForwardAction.ID, + title: { value: localize('navigateForward', "Go Forward"), original: 'Go Forward', mnemonicTitle: localize({ key: 'miForward', comment: ['&& denotes a mnemonic'] }, "&&Forward") }, + f1: true, + icon: Codicon.arrowRight, + precondition: ContextKeyExpr.has('canNavigateForward'), + keybinding: { + weight: KeybindingWeight.WorkbenchContrib, + win: { primary: KeyMod.Alt | KeyCode.RightArrow }, + mac: { primary: KeyMod.WinCtrl | KeyMod.Shift | KeyCode.Minus }, + linux: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.Minus } + }, + menu: [ + { id: MenuId.MenubarGoMenu, group: '1_history_nav', order: 2 }, + { id: MenuId.CommandCenter, order: 2 } + ] + }); } - override async run(): Promise<void> { - await this.historyService.goForward(GoFilter.NONE); + async run(accessor: ServicesAccessor): Promise<void> { + const historyService = accessor.get(IHistoryService); + + await historyService.goForward(GoFilter.NONE); } } -export class NavigateBackwardsAction extends Action { +export class NavigateBackwardsAction extends Action2 { static readonly ID = 'workbench.action.navigateBack'; static readonly LABEL = localize('navigateBack', "Go Back"); - constructor( - id: string, - label: string, - @IHistoryService private readonly historyService: IHistoryService - ) { - super(id, label); + constructor() { + super({ + id: NavigateBackwardsAction.ID, + title: { value: localize('navigateBack', "Go Back"), original: 'Go Back', mnemonicTitle: localize({ key: 'miBack', comment: ['&& denotes a mnemonic'] }, "&&Back") }, + f1: true, + precondition: ContextKeyExpr.has('canNavigateBack'), + icon: Codicon.arrowLeft, + keybinding: { + weight: KeybindingWeight.WorkbenchContrib, + win: { primary: KeyMod.Alt | KeyCode.LeftArrow }, + mac: { primary: KeyMod.WinCtrl | KeyCode.Minus }, + linux: { primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.Minus } + }, + menu: [ + { id: MenuId.MenubarGoMenu, group: '1_history_nav', order: 1 }, + { id: MenuId.CommandCenter, order: 1 } + ] + }); } - override async run(): Promise<void> { - await this.historyService.goBack(GoFilter.NONE); + async run(accessor: ServicesAccessor): Promise<void> { + const historyService = accessor.get(IHistoryService); + + await historyService.goBack(GoFilter.NONE); } } |