Remove editor Command usage in terminal

Part of #89348
This commit is contained in:
Daniel Imms 2020-02-05 10:57:26 -08:00
parent 150b2dfe67
commit 96ac038ffb
2 changed files with 73 additions and 62 deletions

View file

@ -10,7 +10,7 @@ import 'vs/css!./media/terminal';
import 'vs/css!./media/widgets';
import 'vs/css!./media/xterm';
import * as nls from 'vs/nls';
import { SyncActionDescriptor } from 'vs/platform/actions/common/actions';
import { SyncActionDescriptor, registerAction2 } from 'vs/platform/actions/common/actions';
import { CommandsRegistry } from 'vs/platform/commands/common/commands';
import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey';
import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry';
@ -20,7 +20,7 @@ import * as panel from 'vs/workbench/browser/panel';
import { getQuickNavigateHandler } from 'vs/workbench/browser/parts/quickopen/quickopen';
import { Extensions as QuickOpenExtensions, IQuickOpenRegistry, QuickOpenHandlerDescriptor } from 'vs/workbench/browser/quickopen';
import { Extensions as ActionExtensions, IWorkbenchActionRegistry } from 'vs/workbench/common/actions';
import { ClearSelectionTerminalAction, ClearTerminalAction, CopyTerminalSelectionAction, CreateNewInActiveWorkspaceTerminalAction, CreateNewTerminalAction, DeleteToLineStartTerminalAction, DeleteWordLeftTerminalAction, DeleteWordRightTerminalAction, FindNext, FindPrevious, FocusActiveTerminalAction, FocusNextPaneTerminalAction, FocusNextTerminalAction, FocusPreviousPaneTerminalAction, FocusPreviousTerminalAction, FocusTerminalFindWidgetAction, HideTerminalFindWidgetAction, KillTerminalAction, MoveToLineEndTerminalAction, MoveToLineStartTerminalAction, QuickOpenActionTermContributor, QuickOpenTermAction, RenameTerminalAction, ResizePaneDownTerminalAction, ResizePaneLeftTerminalAction, ResizePaneRightTerminalAction, ResizePaneUpTerminalAction, RunActiveFileInTerminalAction, RunSelectedTextInTerminalAction, ScrollDownPageTerminalAction, ScrollDownTerminalAction, ScrollToBottomTerminalAction, ScrollToNextCommandAction, ScrollToPreviousCommandAction, ScrollToTopTerminalAction, ScrollUpPageTerminalAction, ScrollUpTerminalAction, SelectAllTerminalAction, SelectDefaultShellWindowsTerminalAction, SelectToNextCommandAction, SelectToNextLineAction, SelectToPreviousCommandAction, SelectToPreviousLineAction, SendSequenceTerminalCommand, SplitInActiveWorkspaceTerminalAction, SplitTerminalAction, TerminalPasteAction, TERMINAL_PICKER_PREFIX, ToggleCaseSensitiveCommand, ToggleEscapeSequenceLoggingAction, ToggleRegexCommand, ToggleTerminalAction, ToggleWholeWordCommand, NavigationModeFocusPreviousTerminalAction, NavigationModeFocusNextTerminalAction, NavigationModeExitTerminalAction, ManageWorkspaceShellPermissionsTerminalCommand, CreateNewWithCwdTerminalCommand, RenameWithArgTerminalCommand } from 'vs/workbench/contrib/terminal/browser/terminalActions';
import { ClearSelectionTerminalAction, ClearTerminalAction, CopyTerminalSelectionAction, CreateNewInActiveWorkspaceTerminalAction, CreateNewTerminalAction, DeleteToLineStartTerminalAction, DeleteWordLeftTerminalAction, DeleteWordRightTerminalAction, FindNext, FindPrevious, FocusActiveTerminalAction, FocusNextPaneTerminalAction, FocusNextTerminalAction, FocusPreviousPaneTerminalAction, FocusPreviousTerminalAction, FocusTerminalFindWidgetAction, HideTerminalFindWidgetAction, KillTerminalAction, MoveToLineEndTerminalAction, MoveToLineStartTerminalAction, QuickOpenActionTermContributor, QuickOpenTermAction, RenameTerminalAction, ResizePaneDownTerminalAction, ResizePaneLeftTerminalAction, ResizePaneRightTerminalAction, ResizePaneUpTerminalAction, RunActiveFileInTerminalAction, RunSelectedTextInTerminalAction, ScrollDownPageTerminalAction, ScrollDownTerminalAction, ScrollToBottomTerminalAction, ScrollToNextCommandAction, ScrollToPreviousCommandAction, ScrollToTopTerminalAction, ScrollUpPageTerminalAction, ScrollUpTerminalAction, SelectAllTerminalAction, SelectDefaultShellWindowsTerminalAction, SelectToNextCommandAction, SelectToNextLineAction, SelectToPreviousCommandAction, SelectToPreviousLineAction, SplitInActiveWorkspaceTerminalAction, SplitTerminalAction, TerminalPasteAction, TERMINAL_PICKER_PREFIX, ToggleCaseSensitiveCommand, ToggleEscapeSequenceLoggingAction, ToggleRegexCommand, ToggleTerminalAction, ToggleWholeWordCommand, NavigationModeFocusPreviousTerminalAction, NavigationModeFocusNextTerminalAction, NavigationModeExitTerminalAction, ManageWorkspaceShellPermissionsTerminalCommand, CreateNewWithCwdTerminalAction, RenameWithArgTerminalAction, SendSequenceTerminalAction } from 'vs/workbench/contrib/terminal/browser/terminalActions';
import { TerminalPanel } from 'vs/workbench/contrib/terminal/browser/terminalPanel';
import { TerminalPickerHandler } from 'vs/workbench/contrib/terminal/browser/terminalQuickOpen';
import { KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_FOCUSED, KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_NOT_VISIBLE, KEYBINDING_CONTEXT_TERMINAL_FIND_WIDGET_VISIBLE, KEYBINDING_CONTEXT_TERMINAL_FOCUS, KEYBINDING_CONTEXT_TERMINAL_TEXT_SELECTED, TERMINAL_PANEL_ID, DEFAULT_LETTER_SPACING, DEFAULT_LINE_HEIGHT, TerminalCursorStyle, TERMINAL_ACTION_CATEGORY, KEYBINDING_CONTEXT_TERMINAL_A11Y_TREE_FOCUS, TERMINAL_COMMAND_ID } from 'vs/workbench/contrib/terminal/common/terminal';
@ -598,66 +598,77 @@ if (BrowserFeatures.clipboard.readText) {
linux: { primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_V }
}, KEYBINDING_CONTEXT_TERMINAL_FOCUS), 'Terminal: Paste into Active Terminal', category);
}
(new SendSequenceTerminalCommand({
id: SendSequenceTerminalCommand.ID,
precondition: undefined,
description: {
description: SendSequenceTerminalCommand.LABEL,
args: [{
name: 'args',
schema: {
type: 'object',
required: ['text'],
properties: {
text: { type: 'string' }
},
}
}]
}
})).register();
(new CreateNewWithCwdTerminalCommand({
id: CreateNewWithCwdTerminalCommand.ID,
precondition: undefined,
description: {
description: CreateNewWithCwdTerminalCommand.LABEL,
args: [{
name: 'args',
schema: {
type: 'object',
required: ['cwd'],
properties: {
cwd: {
description: CreateNewWithCwdTerminalCommand.CWD_ARG_LABEL,
type: 'string'
registerAction2(class extends SendSequenceTerminalAction {
constructor() {
super({
id: SendSequenceTerminalAction.ID,
title: SendSequenceTerminalAction.LABEL,
description: {
description: SendSequenceTerminalAction.LABEL,
args: [{
name: 'args',
schema: {
type: 'object',
required: ['text'],
properties: {
text: { type: 'string' }
},
}
},
}]
}
}]
});
}
})).register();
(new RenameWithArgTerminalCommand({
id: RenameWithArgTerminalCommand.ID,
precondition: undefined,
description: {
description: RenameWithArgTerminalCommand.LABEL,
args: [{
name: 'args',
schema: {
type: 'object',
required: ['name'],
properties: {
name: {
description: RenameWithArgTerminalCommand.NAME_ARG_LABEL,
type: 'string',
minLength: 1
});
registerAction2(class extends CreateNewWithCwdTerminalAction {
constructor() {
super({
id: CreateNewWithCwdTerminalAction.ID,
title: CreateNewWithCwdTerminalAction.LABEL,
description: {
description: CreateNewWithCwdTerminalAction.LABEL,
args: [{
name: 'args',
schema: {
type: 'object',
required: ['cwd'],
properties: {
cwd: {
description: CreateNewWithCwdTerminalAction.CWD_ARG_LABEL,
type: 'string'
}
},
}
}
}]
}
}]
});
}
})).register();
});
registerAction2(class extends RenameWithArgTerminalAction {
constructor() {
super({
id: RenameWithArgTerminalAction.ID,
title: RenameWithArgTerminalAction.LABEL,
description: {
description: RenameWithArgTerminalAction.LABEL,
args: [{
name: 'args',
schema: {
type: 'object',
required: ['name'],
properties: {
name: {
description: RenameWithArgTerminalAction.NAME_ARG_LABEL,
type: 'string',
minLength: 1
}
}
}
}]
}
});
}
});
setupTerminalCommands();
setupTerminalMenu();

View file

@ -24,7 +24,6 @@ import { ICommandService } from 'vs/platform/commands/common/commands';
import { IWorkspaceContextService, IWorkspaceFolder } from 'vs/platform/workspace/common/workspace';
import { PICK_WORKSPACE_FOLDER_COMMAND_ID } from 'vs/workbench/browser/actions/workspaceCommands';
import { INotificationService } from 'vs/platform/notification/common/notification';
import { Command } from 'vs/editor/browser/editorExtensions';
import { timeout } from 'vs/base/common/async';
import { FindReplaceState } from 'vs/editor/contrib/find/findState';
import { ISelectOptionItem } from 'vs/base/browser/ui/selectBox/selectBox';
@ -35,6 +34,7 @@ import { URI } from 'vs/base/common/uri';
import { isWindows } from 'vs/base/common/platform';
import { withNullAsUndefined } from 'vs/base/common/types';
import { ITerminalInstance, ITerminalService, Direction } from 'vs/workbench/contrib/terminal/browser/terminal';
import { Action2 } from 'vs/platform/actions/common/actions';
export const TERMINAL_PICKER_PREFIX = 'term ';
@ -278,11 +278,11 @@ export class MoveToLineEndTerminalAction extends BaseSendTextTerminalAction {
}
}
export class SendSequenceTerminalCommand extends Command {
export class SendSequenceTerminalAction extends Action2 {
public static readonly ID = TERMINAL_COMMAND_ID.SEND_SEQUENCE;
public static readonly LABEL = nls.localize('workbench.action.terminal.sendSequence', "Send Custom Sequence To Terminal");
public runCommand(accessor: ServicesAccessor, args: any): void {
public run(accessor: ServicesAccessor, args: any): void {
const terminalInstance = accessor.get(ITerminalService).getActiveInstance();
if (!terminalInstance) {
return;
@ -298,12 +298,12 @@ export class SendSequenceTerminalCommand extends Command {
}
}
export class CreateNewWithCwdTerminalCommand extends Command {
export class CreateNewWithCwdTerminalAction extends Action2 {
public static readonly ID = TERMINAL_COMMAND_ID.NEW_WITH_CWD;
public static readonly LABEL = nls.localize('workbench.action.terminal.newWithCwd', "Create New Integrated Terminal Starting in a Custom Working Directory");
public static readonly CWD_ARG_LABEL = nls.localize('workbench.action.terminal.newWithCwd.cwd', "The directory to start the terminal at");
public runCommand(accessor: ServicesAccessor, args: { cwd: string } | undefined): Promise<void> {
public run(accessor: ServicesAccessor, args: { cwd: string } | undefined): Promise<void> {
const terminalService = accessor.get(ITerminalService);
const instance = terminalService.createTerminal({ cwd: args?.cwd });
if (!instance) {
@ -1055,12 +1055,12 @@ export class RenameTerminalAction extends Action {
});
}
}
export class RenameWithArgTerminalCommand extends Command {
export class RenameWithArgTerminalAction extends Action2 {
public static readonly ID = TERMINAL_COMMAND_ID.RENAME_WITH_ARG;
public static readonly LABEL = nls.localize('workbench.action.terminal.renameWithArg', "Rename the Currently Active Terminal");
public static readonly NAME_ARG_LABEL = nls.localize('workbench.action.terminal.renameWithArg.name', "The new name for the terminal");
public runCommand(
public run(
accessor: ServicesAccessor,
args?: { name?: string }
): void {