Skip to content

Commit c3a1a7b

Browse files
committed
Fix ViewColumn handling in terminal editors
Fixes microsoft#158274
1 parent 4987750 commit c3a1a7b

File tree

2 files changed

+9
-8
lines changed

2 files changed

+9
-8
lines changed

src/vs/workbench/api/common/extHostTerminalService.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ import { TerminalDataBufferer } from 'vs/platform/terminal/common/terminalDataBu
2323
import { ThemeColor } from 'vs/platform/theme/common/themeService';
2424
import { withNullAsUndefined } from 'vs/base/common/types';
2525
import { Promises } from 'vs/base/common/async';
26+
import { EditorGroupColumn } from 'vs/workbench/services/editor/common/editorGroupColumn';
27+
import { ViewColumn } from 'vs/workbench/api/common/extHostTypeConverters';
2628

2729
export interface IExtHostTerminalService extends ExtHostTerminalServiceShape, IDisposable {
2830

@@ -177,14 +179,14 @@ export class ExtHostTerminal {
177179
return this._id;
178180
}
179181

180-
private _serializeParentTerminal(location?: TerminalLocation | vscode.TerminalEditorLocationOptions | vscode.TerminalSplitLocationOptions, parentTerminal?: ExtHostTerminalIdentifier): TerminalLocation | vscode.TerminalEditorLocationOptions | { parentTerminal: ExtHostTerminalIdentifier } | undefined {
182+
private _serializeParentTerminal(location?: TerminalLocation | vscode.TerminalEditorLocationOptions | vscode.TerminalSplitLocationOptions, parentTerminal?: ExtHostTerminalIdentifier): TerminalLocation | { viewColumn: EditorGroupColumn; preserveFocus?: boolean } | { parentTerminal: ExtHostTerminalIdentifier } | undefined {
181183
if (typeof location === 'object') {
182184
if ('parentTerminal' in location && location.parentTerminal && parentTerminal) {
183185
return { parentTerminal };
184186
}
185187

186188
if ('viewColumn' in location) {
187-
return { viewColumn: location.viewColumn, preserveFocus: location.preserveFocus };
189+
return { viewColumn: ViewColumn.from(location.viewColumn), preserveFocus: location.preserveFocus };
188190
}
189191

190192
return undefined;

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

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import { URI } from 'vs/base/common/uri';
1414
import { IKeyMods } from 'vs/base/parts/quickinput/common/quickInput';
1515
import * as nls from 'vs/nls';
1616
import { ICommandService } from 'vs/platform/commands/common/commands';
17+
import { IConfigurationService } from 'vs/platform/configuration/common/configuration';
1718
import { IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey';
1819
import { IDialogService } from 'vs/platform/dialogs/common/dialogs';
1920
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
@@ -38,8 +39,9 @@ import { getInstanceFromResource, getTerminalUri, parseTerminalUri } from 'vs/wo
3839
import { TerminalViewPane } from 'vs/workbench/contrib/terminal/browser/terminalView';
3940
import { IRemoteTerminalAttachTarget, IStartExtensionTerminalRequest, ITerminalBackend, ITerminalConfigHelper, ITerminalProcessExtHostProxy, ITerminalProfileService, TERMINAL_VIEW_ID } from 'vs/workbench/contrib/terminal/common/terminal';
4041
import { TerminalContextKeys } from 'vs/workbench/contrib/terminal/common/terminalContextKey';
42+
import { columnToEditorGroup } from 'vs/workbench/services/editor/common/editorGroupColumn';
4143
import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService';
42-
import { ACTIVE_GROUP, IEditorService, SIDE_GROUP } from 'vs/workbench/services/editor/common/editorService';
44+
import { IEditorService, SIDE_GROUP } from 'vs/workbench/services/editor/common/editorService';
4345
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
4446
import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions';
4547
import { ILifecycleService, ShutdownReason, StartupKind, WillShutdownEvent } from 'vs/workbench/services/lifecycle/common/lifecycle';
@@ -159,6 +161,7 @@ export class TerminalService implements ITerminalService {
159161
@IInstantiationService private _instantiationService: IInstantiationService,
160162
@IRemoteAgentService private _remoteAgentService: IRemoteAgentService,
161163
@IViewsService private _viewsService: IViewsService,
164+
@IConfigurationService private readonly _configurationService: IConfigurationService,
162165
@IWorkbenchEnvironmentService private readonly _environmentService: IWorkbenchEnvironmentService,
163166
@ITerminalEditorService private readonly _terminalEditorService: ITerminalEditorService,
164167
@ITerminalGroupService private readonly _terminalGroupService: ITerminalGroupService,
@@ -1111,11 +1114,7 @@ export class TerminalService implements ITerminalService {
11111114

11121115
private _getEditorOptions(location?: ITerminalLocationOptions): TerminalEditorLocation | undefined {
11131116
if (location && typeof location === 'object' && 'viewColumn' in location) {
1114-
// When ACTIVE_GROUP is used, resolve it to an actual group to ensure the is created in
1115-
// the active group even if it is locked
1116-
if (location.viewColumn === ACTIVE_GROUP) {
1117-
location.viewColumn = this._editorGroupsService.activeGroup.index;
1118-
}
1117+
location.viewColumn = columnToEditorGroup(this._editorGroupsService, this._configurationService, location.viewColumn);
11191118
return location;
11201119
}
11211120
return undefined;

0 commit comments

Comments
 (0)