mirror of
https://github.com/Microsoft/vscode
synced 2024-10-13 06:48:17 +00:00
parent
150b2dfe67
commit
96ac038ffb
|
@ -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();
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Reference in a new issue