Change:
I noticed terminals can accept : Note that this does not map 1 to 1 to , you have to: offset properly: convert properly: //cc
Steps: open 2 empty editor groups, focus the first group execute a command that triggers below code [1] terminal opens in first group not second
Moving to September. //cc

Discussion:
import { ThemeColor } from 'vs/platform/theme/common/themeService'; import { withNullAsUndefined } from 'vs/base/common/types'; import { Promises } from 'vs/base/common/async'; <ins> import { EditorGroupColumn } from 'vs/workbench/services/editor/common/editorGroupColumn'; import { ViewColumn } from 'vs/workbench/api/common/extHostTypeConverters'; </ins> export interface IExtHostTerminalService extends ExtHostTerminalServiceShape, IDisposable {

return this._id; } <del> private _serializeParentTerminal(location?: TerminalLocation | vscode.TerminalEditorLocationOptions | vscode.TerminalSplitLocationOptions, parentTerminal?: ExtHostTerminalIdentifier): TerminalLocation | vscode.TerminalEditorLocationOptions | { parentTerminal: ExtHostTerminalIdentifier } | undefined { </del> <ins> private _serializeParentTerminal(location?: TerminalLocation | vscode.TerminalEditorLocationOptions | vscode.TerminalSplitLocationOptions, parentTerminal?: ExtHostTerminalIdentifier): TerminalLocation | { viewColumn: EditorGroupColumn; preserveFocus?: boolean } | { parentTerminal: ExtHostTerminalIdentifier } | undefined { </ins> if (typeof location === 'object') { if ('parentTerminal' in location && location.parentTerminal && parentTerminal) { return { parentTerminal }; } if ('viewColumn' in location) { <del> return { viewColumn: location.viewColumn, preserveFocus: location.preserveFocus }; </del> <ins> return { viewColumn: ViewColumn.from(location.viewColumn), preserveFocus: location.preserveFocus }; </ins> } return undefined;

import { IKeyMods } from 'vs/base/parts/quickinput/common/quickInput'; import * as nls from 'vs/nls'; import { ICommandService } from 'vs/platform/commands/common/commands'; <ins> import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; </ins> import { IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { IDialogService } from 'vs/platform/dialogs/common/dialogs'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';

import { TerminalViewPane } from 'vs/workbench/contrib/terminal/browser/terminalView'; import { IRemoteTerminalAttachTarget, IStartExtensionTerminalRequest, ITerminalBackend, ITerminalConfigHelper, ITerminalProcessExtHostProxy, ITerminalProfileService, TERMINAL_VIEW_ID } from 'vs/workbench/contrib/terminal/common/terminal'; import { TerminalContextKeys } from 'vs/workbench/contrib/terminal/common/terminalContextKey'; <ins> import { columnToEditorGroup } from 'vs/workbench/services/editor/common/editorGroupColumn'; </ins> import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; <del> import { ACTIVE_GROUP, IEditorService, SIDE_GROUP } from 'vs/workbench/services/editor/common/editorService'; </del> <ins> import { IEditorService, SIDE_GROUP } from 'vs/workbench/services/editor/common/editorService'; </ins> import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; import { ILifecycleService, ShutdownReason, StartupKind, WillShutdownEvent } from 'vs/workbench/services/lifecycle/common/lifecycle';

@IInstantiationService private _instantiationService: IInstantiationService, @IRemoteAgentService private _remoteAgentService: IRemoteAgentService, @IViewsService private _viewsService: IViewsService, <ins> @IConfigurationService private readonly _configurationService: IConfigurationService, </ins> @IWorkbenchEnvironmentService private readonly _environmentService: IWorkbenchEnvironmentService, @ITerminalEditorService private readonly _terminalEditorService: ITerminalEditorService, @ITerminalGroupService private readonly _terminalGroupService: ITerminalGroupService,

private _getEditorOptions(location?: ITerminalLocationOptions): TerminalEditorLocation | undefined { if (location && typeof location === 'object' && 'viewColumn' in location) { <del> // When ACTIVE_GROUP is used, resolve it to an actual group to ensure the is created in // the active group even if it is locked if (location.viewColumn === ACTIVE_GROUP) { location.viewColumn = this._editorGroupsService.activeGroup.index; } </del> <ins> location.viewColumn = columnToEditorGroup(this._editorGroupsService, this._configurationService, location.viewColumn); </ins> return location; } return undefined;