Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/microsoft/vscode.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Pasero <benjamin.pasero@microsoft.com>2022-06-09 09:41:12 +0300
committerGitHub <noreply@github.com>2022-06-09 09:41:12 +0300
commit54ae4d8ccbf4574889c24b086079a745b3debf96 (patch)
tree59d8dde0366f154dfe09ba23e4e1c672b1e376c0
parent640898db17d39b80723a0bf77fc9574dab67420f (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.ts31
-rw-r--r--src/vs/workbench/browser/parts/editor/editorActions.ts69
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);
}
}