mirror of
https://github.com/Microsoft/vscode
synced 2024-08-27 21:09:43 +00:00
Convert history commands to Action2
(#151524)
* Convert history commands to `Action2` * address feedback * address comments
This commit is contained in:
parent
640898db17
commit
54ae4d8ccb
|
@ -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: {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue