Skip to content

Commit 4491fd5

Browse files
authored
Merge pull request microsoft#84429 from petevdp/petevdp/add-terminal-rename-command
microsoft#82105 Add Terminal Rename Command
2 parents c2c6439 + d7def16 commit 4491fd5

3 files changed

Lines changed: 50 additions & 1 deletion

File tree

src/vs/workbench/contrib/terminal/browser/terminal.contribution.ts

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import * as panel from 'vs/workbench/browser/panel';
2020
import { getQuickNavigateHandler } from 'vs/workbench/browser/parts/quickopen/quickopen';
2121
import { Extensions as QuickOpenExtensions, IQuickOpenRegistry, QuickOpenHandlerDescriptor } from 'vs/workbench/browser/quickopen';
2222
import { Extensions as ActionExtensions, IWorkbenchActionRegistry } from 'vs/workbench/common/actions';
23-
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 } from 'vs/workbench/contrib/terminal/browser/terminalActions';
23+
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';
2424
import { TerminalPanel } from 'vs/workbench/contrib/terminal/browser/terminalPanel';
2525
import { TerminalPickerHandler } from 'vs/workbench/contrib/terminal/browser/terminalQuickOpen';
2626
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';
@@ -590,6 +590,7 @@ if (BrowserFeatures.clipboard.readText) {
590590
}]
591591
}
592592
})).register();
593+
593594
(new CreateNewWithCwdTerminalCommand({
594595
id: CreateNewWithCwdTerminalCommand.ID,
595596
precondition: undefined,
@@ -611,6 +612,28 @@ if (BrowserFeatures.clipboard.readText) {
611612
}
612613
})).register();
613614

615+
(new RenameWithArgTerminalCommand({
616+
id: RenameWithArgTerminalCommand.ID,
617+
precondition: undefined,
618+
description: {
619+
description: RenameWithArgTerminalCommand.LABEL,
620+
args: [{
621+
name: 'args',
622+
schema: {
623+
type: 'object',
624+
required: ['name'],
625+
properties: {
626+
name: {
627+
description: RenameWithArgTerminalCommand.NAME_ARG_LABEL,
628+
type: 'string',
629+
minLength: 1
630+
}
631+
}
632+
}
633+
}]
634+
}
635+
})).register();
636+
614637
setupTerminalCommands();
615638
setupTerminalMenu();
616639

src/vs/workbench/contrib/terminal/browser/terminalActions.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1055,6 +1055,31 @@ export class RenameTerminalAction extends Action {
10551055
});
10561056
}
10571057
}
1058+
export class RenameWithArgTerminalCommand extends Command {
1059+
public static readonly ID = TERMINAL_COMMAND_ID.RENAME_WITH_ARG;
1060+
public static readonly LABEL = nls.localize('workbench.action.terminal.renameWithArg', "Rename the Currently Active Terminal");
1061+
public static readonly NAME_ARG_LABEL = nls.localize('workbench.action.terminal.renameWithArg.name', "The new name for the terminal");
1062+
1063+
public runCommand(
1064+
accessor: ServicesAccessor,
1065+
args?: { name?: string }
1066+
): void {
1067+
const notificationService = accessor.get(INotificationService);
1068+
const terminalInstance = accessor.get(ITerminalService).getActiveInstance();
1069+
1070+
if (!terminalInstance) {
1071+
notificationService.warn(nls.localize('workbench.action.terminal.renameWithArg.noTerminal', "No active terminal to rename"));
1072+
return;
1073+
}
1074+
1075+
if (!args || !args.name) {
1076+
notificationService.warn(nls.localize('workbench.action.terminal.renameWithArg.noName', "No name argument provided"));
1077+
return;
1078+
}
1079+
1080+
terminalInstance.setTitle(args.name, TitleEventSource.Api);
1081+
}
1082+
}
10581083

10591084
export class FocusTerminalFindWidgetAction extends Action {
10601085

src/vs/workbench/contrib/terminal/common/terminal.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -453,6 +453,7 @@ export const enum TERMINAL_COMMAND_ID {
453453
CLEAR_SELECTION = 'workbench.action.terminal.clearSelection',
454454
MANAGE_WORKSPACE_SHELL_PERMISSIONS = 'workbench.action.terminal.manageWorkspaceShellPermissions',
455455
RENAME = 'workbench.action.terminal.rename',
456+
RENAME_WITH_ARG = 'workbench.action.terminal.renameWithArg',
456457
FIND_WIDGET_FOCUS = 'workbench.action.terminal.focusFindWidget',
457458
FIND_WIDGET_HIDE = 'workbench.action.terminal.hideFindWidget',
458459
QUICK_OPEN_TERM = 'workbench.action.quickOpenTerm',

0 commit comments

Comments
 (0)