未验证 提交 e657d422 编写于 作者: C Connor Peet

debug: expose parent session on DebugSessions

For https://github.com/microsoft/vscode/issues/123403
上级 25967171
...@@ -3309,4 +3309,16 @@ declare module 'vscode' { ...@@ -3309,4 +3309,16 @@ declare module 'vscode' {
} }
//#endregion //#endregion
//#region Expose parent session on DebugSessions - https://github.com/microsoft/vscode/issues/123403#issuecomment-843269200
export interface DebugSession {
/**
* The parent session of this debug session, if it was created as a child.
* @see DebugSessionOptions.parentSession
*/
readonly parentSession?: DebugSession;
}
//#endregion
} }
...@@ -329,7 +329,8 @@ export class MainThreadDebugService implements MainThreadDebugServiceShape, IDeb ...@@ -329,7 +329,8 @@ export class MainThreadDebugService implements MainThreadDebugServiceShape, IDeb
type: session.configuration.type, type: session.configuration.type,
name: session.name, name: session.name,
folderUri: session.root ? session.root.uri : undefined, folderUri: session.root ? session.root.uri : undefined,
configuration: session.configuration configuration: session.configuration,
parent: session.parentSession?.getId(),
}; };
} }
} }
......
...@@ -1780,6 +1780,7 @@ export interface IDebugSessionFullDto { ...@@ -1780,6 +1780,7 @@ export interface IDebugSessionFullDto {
id: DebugSessionUUID; id: DebugSessionUUID;
type: string; type: string;
name: string; name: string;
parent: DebugSessionUUID | undefined;
folderUri: UriComponents | undefined; folderUri: UriComponents | undefined;
configuration: IConfig; configuration: IConfig;
} }
......
...@@ -845,7 +845,8 @@ export abstract class ExtHostDebugServiceBase implements IExtHostDebugService, E ...@@ -845,7 +845,8 @@ export abstract class ExtHostDebugServiceBase implements IExtHostDebugService, E
let ds = this._debugSessions.get(dto.id); let ds = this._debugSessions.get(dto.id);
if (!ds) { if (!ds) {
const folder = await this.getFolder(dto.folderUri); const folder = await this.getFolder(dto.folderUri);
ds = new ExtHostDebugSession(this._debugServiceProxy, dto.id, dto.type, dto.name, folder, dto.configuration); const parent = dto.parent ? this._debugSessions.get(dto.parent) : undefined;
ds = new ExtHostDebugSession(this._debugServiceProxy, dto.id, dto.type, dto.name, folder, dto.configuration, parent);
this._debugSessions.set(ds.id, ds); this._debugSessions.set(ds.id, ds);
this._debugServiceProxy.$sessionCached(ds.id); this._debugServiceProxy.$sessionCached(ds.id);
} }
...@@ -872,7 +873,8 @@ export class ExtHostDebugSession implements vscode.DebugSession { ...@@ -872,7 +873,8 @@ export class ExtHostDebugSession implements vscode.DebugSession {
private _type: string, private _type: string,
private _name: string, private _name: string,
private _workspaceFolder: vscode.WorkspaceFolder | undefined, private _workspaceFolder: vscode.WorkspaceFolder | undefined,
private _configuration: vscode.DebugConfiguration) { private _configuration: vscode.DebugConfiguration,
private _parentSession: vscode.DebugSession | undefined) {
} }
public get id(): string { public get id(): string {
...@@ -886,12 +888,15 @@ export class ExtHostDebugSession implements vscode.DebugSession { ...@@ -886,12 +888,15 @@ export class ExtHostDebugSession implements vscode.DebugSession {
public get name(): string { public get name(): string {
return this._name; return this._name;
} }
public set name(name: string) { public set name(name: string) {
this._name = name; this._name = name;
this._debugServiceProxy.$setDebugSessionName(this._id, name); this._debugServiceProxy.$setDebugSessionName(this._id, name);
} }
public get parentSession(): vscode.DebugSession | undefined {
return this._parentSession;
}
_acceptNameChanged(name: string) { _acceptNameChanged(name: string) {
this._name = name; this._name = name;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册