Only persist terminals for the same workspace

Fix #109082
This commit is contained in:
Rob Lourens
2020-10-21 16:46:00 -07:00
parent 9b646fda6c
commit 9f7a586124
2 changed files with 14 additions and 3 deletions

View File

@@ -1,7 +1,7 @@
{
"name": "code-oss-dev",
"version": "1.51.0",
"distro": "97dcd3b65aff18cb945cc572e1249fa3b531376a",
"distro": "5480c98d55324b0d19e4e0bf28bf89575bc444e8",
"author": {
"name": "Microsoft Corporation"
},

View File

@@ -67,6 +67,7 @@ export interface ICreateTerminalProcessArguments {
resolvedVariables: { [name: string]: string; };
envVariableCollections: ITerminalEnvironmentVariableCollections;
shellLaunchConfig: IShellLaunchConfigDto;
workspaceId: string;
workspaceFolders: IWorkspaceFolderData[];
activeWorkspaceFolder: IWorkspaceFolderData | null;
activeFileResource: UriComponents | undefined;
@@ -120,6 +121,10 @@ export interface IOrphanQuestionReplyArgs {
id: number;
}
export interface IListTerminalsArgs {
workspaceId: string;
}
export interface IRemoteTerminalDescriptionDto {
id: number;
pid: number;
@@ -249,7 +254,8 @@ export class RemoteTerminalChannelClient {
const resolverResult = await this._remoteAuthorityResolverService.resolveAuthority(this._remoteAuthority);
const resolverEnv = resolverResult.options && resolverResult.options.extensionHostEnv;
const workspaceFolders = this._workspaceContextService.getWorkspace().folders;
const workspace = this._workspaceContextService.getWorkspace();
const workspaceFolders = workspace.folders;
const activeWorkspaceFolder = activeWorkspaceRootUri ? this._workspaceContextService.getWorkspaceFolder(activeWorkspaceRootUri) : null;
const activeFileResource = EditorResourceAccessor.getOriginalUri(this._editorService.activeEditor, {
@@ -262,6 +268,7 @@ export class RemoteTerminalChannelClient {
resolvedVariables,
envVariableCollections,
shellLaunchConfig,
workspaceId: workspace.id,
workspaceFolders,
activeWorkspaceFolder,
activeFileResource,
@@ -340,6 +347,10 @@ export class RemoteTerminalChannelClient {
}
public listTerminals(): Promise<IRemoteTerminalDescriptionDto[]> {
return this._channel.call<IRemoteTerminalDescriptionDto[]>('$listTerminals');
const workspace = this._workspaceContextService.getWorkspace();
const args: IListTerminalsArgs = {
workspaceId: workspace.id
};
return this._channel.call<IRemoteTerminalDescriptionDto[]>('$listTerminals', args);
}
}