Skip to content

Commit ec2ed03

Browse files
committed
debug: expose onDidProgressStart and onDidProgressEvent
microsoft#92253
1 parent 23d863f commit ec2ed03

4 files changed

Lines changed: 57 additions & 27 deletions

File tree

src/vs/workbench/contrib/debug/browser/debugSession.ts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ export class DebugSession implements IDebugSession {
5454

5555
private readonly _onDidLoadedSource = new Emitter<LoadedSourceEvent>();
5656
private readonly _onDidCustomEvent = new Emitter<DebugProtocol.Event>();
57+
private readonly _onDidProgressStart = new Emitter<DebugProtocol.ProgressStartEvent>();
58+
private readonly _onDidProgressEnd = new Emitter<DebugProtocol.ProgressEndEvent>();
5759

5860
private readonly _onDidChangeREPLElements = new Emitter<void>();
5961

@@ -184,6 +186,14 @@ export class DebugSession implements IDebugSession {
184186
return this._onDidLoadedSource.event;
185187
}
186188

189+
get onDidProgressStart(): Event<DebugProtocol.ProgressStartEvent> {
190+
return this._onDidProgressStart.event;
191+
}
192+
193+
get onDidProgressEnd(): Event<DebugProtocol.ProgressEndEvent> {
194+
return this._onDidProgressEnd.event;
195+
}
196+
187197
//---- DAP requests
188198

189199
/**
@@ -213,7 +223,8 @@ export class DebugSession implements IDebugSession {
213223
supportsVariableType: true, // #8858
214224
supportsVariablePaging: true, // #9537
215225
supportsRunInTerminalRequest: true, // #10574
216-
locale: platform.locale
226+
locale: platform.locale,
227+
supportsProgressReporting: true // #92253
217228
});
218229

219230
this.initialized = true;
@@ -913,6 +924,13 @@ export class DebugSession implements IDebugSession {
913924
this._onDidCustomEvent.fire(event);
914925
}));
915926

927+
this.rawListeners.push(this.raw.onDidProgressStart(event => {
928+
this._onDidProgressStart.fire(event);
929+
}));
930+
this.rawListeners.push(this.raw.onDidProgressEnd(event => {
931+
this._onDidProgressEnd.fire(event);
932+
}));
933+
916934
this.rawListeners.push(this.raw.onDidExitAdapter(event => {
917935
this.initialized = true;
918936
this.model.setBreakpointSessionData(this.getId(), this.capabilities, undefined);

src/vs/workbench/contrib/debug/browser/rawDebugSession.ts

Lines changed: 28 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -56,20 +56,22 @@ export class RawDebugSession implements IDisposable {
5656
private didReceiveStoppedEvent = false;
5757

5858
// DAP events
59-
private readonly _onDidInitialize: Emitter<DebugProtocol.InitializedEvent>;
60-
private readonly _onDidStop: Emitter<DebugProtocol.StoppedEvent>;
61-
private readonly _onDidContinued: Emitter<DebugProtocol.ContinuedEvent>;
62-
private readonly _onDidTerminateDebugee: Emitter<DebugProtocol.TerminatedEvent>;
63-
private readonly _onDidExitDebugee: Emitter<DebugProtocol.ExitedEvent>;
64-
private readonly _onDidThread: Emitter<DebugProtocol.ThreadEvent>;
65-
private readonly _onDidOutput: Emitter<DebugProtocol.OutputEvent>;
66-
private readonly _onDidBreakpoint: Emitter<DebugProtocol.BreakpointEvent>;
67-
private readonly _onDidLoadedSource: Emitter<DebugProtocol.LoadedSourceEvent>;
68-
private readonly _onDidCustomEvent: Emitter<DebugProtocol.Event>;
69-
private readonly _onDidEvent: Emitter<DebugProtocol.Event>;
59+
private readonly _onDidInitialize = new Emitter<DebugProtocol.InitializedEvent>();
60+
private readonly _onDidStop = new Emitter<DebugProtocol.StoppedEvent>();
61+
private readonly _onDidContinued = new Emitter<DebugProtocol.ContinuedEvent>();
62+
private readonly _onDidTerminateDebugee = new Emitter<DebugProtocol.TerminatedEvent>();
63+
private readonly _onDidExitDebugee = new Emitter<DebugProtocol.ExitedEvent>();
64+
private readonly _onDidThread = new Emitter<DebugProtocol.ThreadEvent>();
65+
private readonly _onDidOutput = new Emitter<DebugProtocol.OutputEvent>();
66+
private readonly _onDidBreakpoint = new Emitter<DebugProtocol.BreakpointEvent>();
67+
private readonly _onDidLoadedSource = new Emitter<DebugProtocol.LoadedSourceEvent>();
68+
private readonly _onDidProgressStart = new Emitter<DebugProtocol.ProgressStartEvent>();
69+
private readonly _onDidProgressEnd = new Emitter<DebugProtocol.ProgressEndEvent>();
70+
private readonly _onDidCustomEvent = new Emitter<DebugProtocol.Event>();
71+
private readonly _onDidEvent = new Emitter<DebugProtocol.Event>();
7072

7173
// DA events
72-
private readonly _onDidExitAdapter: Emitter<AdapterEndEvent>;
74+
private readonly _onDidExitAdapter = new Emitter<AdapterEndEvent>();
7375
private debugAdapter: IDebugAdapter | null;
7476

7577
private toDispose: IDisposable[] = [];
@@ -86,20 +88,6 @@ export class RawDebugSession implements IDisposable {
8688
this.debugAdapter = debugAdapter;
8789
this._capabilities = Object.create(null);
8890

89-
this._onDidInitialize = new Emitter<DebugProtocol.InitializedEvent>();
90-
this._onDidStop = new Emitter<DebugProtocol.StoppedEvent>();
91-
this._onDidContinued = new Emitter<DebugProtocol.ContinuedEvent>();
92-
this._onDidTerminateDebugee = new Emitter<DebugProtocol.TerminatedEvent>();
93-
this._onDidExitDebugee = new Emitter<DebugProtocol.ExitedEvent>();
94-
this._onDidThread = new Emitter<DebugProtocol.ThreadEvent>();
95-
this._onDidOutput = new Emitter<DebugProtocol.OutputEvent>();
96-
this._onDidBreakpoint = new Emitter<DebugProtocol.BreakpointEvent>();
97-
this._onDidLoadedSource = new Emitter<DebugProtocol.LoadedSourceEvent>();
98-
this._onDidCustomEvent = new Emitter<DebugProtocol.Event>();
99-
this._onDidEvent = new Emitter<DebugProtocol.Event>();
100-
101-
this._onDidExitAdapter = new Emitter<AdapterEndEvent>();
102-
10391
this.toDispose.push(this.debugAdapter.onError(err => {
10492
this.shutdown(err);
10593
}));
@@ -151,6 +139,12 @@ export class RawDebugSession implements IDisposable {
151139
case 'exit':
152140
this._onDidExitDebugee.fire(<DebugProtocol.ExitedEvent>event);
153141
break;
142+
case 'progressStart':
143+
this._onDidProgressStart.fire(event as DebugProtocol.ProgressStartEvent);
144+
break;
145+
case 'progressEnd':
146+
this._onDidProgressEnd.fire(event as DebugProtocol.ProgressEndEvent);
147+
break;
154148
default:
155149
this._onDidCustomEvent.fire(event);
156150
break;
@@ -219,6 +213,14 @@ export class RawDebugSession implements IDisposable {
219213
return this._onDidCustomEvent.event;
220214
}
221215

216+
get onDidProgressStart(): Event<DebugProtocol.ProgressStartEvent> {
217+
return this._onDidProgressStart.event;
218+
}
219+
220+
get onDidProgressEnd(): Event<DebugProtocol.ProgressEndEvent> {
221+
return this._onDidProgressEnd.event;
222+
}
223+
222224
get onDidEvent(): Event<DebugProtocol.Event> {
223225
return this._onDidEvent.event;
224226
}

src/vs/workbench/contrib/debug/common/debug.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,8 @@ export interface IDebugSession extends ITreeElement {
199199

200200
readonly onDidLoadedSource: Event<LoadedSourceEvent>;
201201
readonly onDidCustomEvent: Event<DebugProtocol.Event>;
202+
readonly onDidProgressStart: Event<DebugProtocol.ProgressStartEvent>;
203+
readonly onDidProgressEnd: Event<DebugProtocol.ProgressEndEvent>;
202204

203205
// DAP request
204206

src/vs/workbench/contrib/debug/test/common/mockDebug.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,14 @@ export class MockSession implements IDebugSession {
222222
throw new Error('not implemented');
223223
}
224224

225+
get onDidProgressStart(): Event<DebugProtocol.ProgressStartEvent> {
226+
throw new Error('not implemented');
227+
}
228+
229+
get onDidProgressEnd(): Event<DebugProtocol.ProgressEndEvent> {
230+
throw new Error('not implemented');
231+
}
232+
225233
setConfiguration(configuration: { resolved: IConfig, unresolved: IConfig }) { }
226234

227235
getAllThreads(): IThread[] {

0 commit comments

Comments
 (0)