diff --git a/src/vs/workbench/contrib/terminal/browser/terminalActions.ts b/src/vs/workbench/contrib/terminal/browser/terminalActions.ts index 617621ae600..4623b8aad7f 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalActions.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalActions.ts @@ -59,6 +59,7 @@ import { FileKind } from 'vs/platform/files/common/files'; import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService'; import { TerminalCapability } from 'vs/platform/terminal/common/capabilities/capabilities'; import { killTerminalIcon, newTerminalIcon } from 'vs/workbench/contrib/terminal/browser/terminalIcons'; +import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; export const switchTerminalActionViewItemSeparator = '\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500'; export const switchTerminalShowTabsTitle = localize('showTerminalTabs', "Show Tabs"); @@ -227,6 +228,21 @@ export function registerTerminalActions() { } }); + registerTerminalAction({ + id: TerminalCommandId.CreateTerminalEditorSameGroup, + title: { value: localize('workbench.action.terminal.createTerminalEditor', "Create New Terminal in Editor Area"), original: 'Create New Terminal in Editor Area' }, + f1: false, + run: async (c, accessor, args) => { + // Force the editor into the same editor group if it's locked. This command is only ever + // called when a terminal is the active editor + const editorGroupsService = accessor.get(IEditorGroupsService); + const instance = await c.service.createTerminal({ + location: { viewColumn: editorGroupsService.activeGroup.index } + }); + instance.focusWhenReady(); + } + }); + registerTerminalAction({ id: TerminalCommandId.CreateTerminalEditorSide, title: { value: localize('workbench.action.terminal.createTerminalEditorSide', "Create New Terminal in Editor Area to the Side"), original: 'Create New Terminal in Editor Area to the Side' }, diff --git a/src/vs/workbench/contrib/terminal/browser/terminalMenus.ts b/src/vs/workbench/contrib/terminal/browser/terminalMenus.ts index 8a810f92fc8..eddc9648b64 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalMenus.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalMenus.ts @@ -785,7 +785,7 @@ export function setupTerminalMenus(): void { MenuRegistry.appendMenuItem(MenuId.EditorTitle, { command: { - id: TerminalCommandId.CreateTerminalEditor, + id: TerminalCommandId.CreateTerminalEditorSameGroup, title: terminalStrings.new, icon: Codicon.plus }, diff --git a/src/vs/workbench/contrib/terminal/common/terminal.ts b/src/vs/workbench/contrib/terminal/common/terminal.ts index 9b5149079b4..45ac0319a00 100644 --- a/src/vs/workbench/contrib/terminal/common/terminal.ts +++ b/src/vs/workbench/contrib/terminal/common/terminal.ts @@ -527,6 +527,7 @@ export const enum TerminalCommandId { FocusPreviousPane = 'workbench.action.terminal.focusPreviousPane', ShowTabs = 'workbench.action.terminal.showTabs', CreateTerminalEditor = 'workbench.action.createTerminalEditor', + CreateTerminalEditorSameGroup = 'workbench.action.createTerminalEditorSameGroup', CreateTerminalEditorSide = 'workbench.action.createTerminalEditorSide', FocusTabs = 'workbench.action.terminal.focusTabs', FocusNextPane = 'workbench.action.terminal.focusNextPane',