File tree Expand file tree Collapse file tree
src/vs/workbench/contrib/debug Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -39,7 +39,19 @@ export class DebugProgressContribution implements IWorkbenchContribution {
3939 title : progressStartEvent . body . title ,
4040 cancellable : progressStartEvent . body . cancellable ,
4141 silent : true
42- } , ( ) => promise , ( ) => session . cancel ( progressStartEvent . body . progressId ) ) ;
42+ } , progressStep => {
43+ const progressUpdateListener = session . onDidProgressUpdate ( e => {
44+ if ( e . body . progressId === progressStartEvent . body . progressId ) {
45+ progressStep . report ( {
46+ message : e . body . message ,
47+ increment : e . body . percentage ,
48+ total : e . body . percentage ? 100 : undefined
49+ } ) ;
50+ }
51+ } ) ;
52+
53+ return promise . then ( ( ) => progressUpdateListener . dispose ( ) ) ;
54+ } , ( ) => session . cancel ( progressStartEvent . body . progressId ) ) ;
4355 } ) ;
4456 }
4557 } ;
Original file line number Diff line number Diff line change @@ -55,6 +55,7 @@ export class DebugSession implements IDebugSession {
5555 private readonly _onDidLoadedSource = new Emitter < LoadedSourceEvent > ( ) ;
5656 private readonly _onDidCustomEvent = new Emitter < DebugProtocol . Event > ( ) ;
5757 private readonly _onDidProgressStart = new Emitter < DebugProtocol . ProgressStartEvent > ( ) ;
58+ private readonly _onDidProgressUpdate = new Emitter < DebugProtocol . ProgressUpdateEvent > ( ) ;
5859 private readonly _onDidProgressEnd = new Emitter < DebugProtocol . ProgressEndEvent > ( ) ;
5960
6061 private readonly _onDidChangeREPLElements = new Emitter < void > ( ) ;
@@ -190,6 +191,10 @@ export class DebugSession implements IDebugSession {
190191 return this . _onDidProgressStart . event ;
191192 }
192193
194+ get onDidProgressUpdate ( ) : Event < DebugProtocol . ProgressUpdateEvent > {
195+ return this . _onDidProgressUpdate . event ;
196+ }
197+
193198 get onDidProgressEnd ( ) : Event < DebugProtocol . ProgressEndEvent > {
194199 return this . _onDidProgressEnd . event ;
195200 }
@@ -935,6 +940,9 @@ export class DebugSession implements IDebugSession {
935940 this . rawListeners . push ( this . raw . onDidProgressStart ( event => {
936941 this . _onDidProgressStart . fire ( event ) ;
937942 } ) ) ;
943+ this . rawListeners . push ( this . raw . onDidProgressUpdate ( event => {
944+ this . _onDidProgressUpdate . fire ( event ) ;
945+ } ) ) ;
938946 this . rawListeners . push ( this . raw . onDidProgressEnd ( event => {
939947 this . _onDidProgressEnd . fire ( event ) ;
940948 } ) ) ;
Original file line number Diff line number Diff line change @@ -66,6 +66,7 @@ export class RawDebugSession implements IDisposable {
6666 private readonly _onDidBreakpoint = new Emitter < DebugProtocol . BreakpointEvent > ( ) ;
6767 private readonly _onDidLoadedSource = new Emitter < DebugProtocol . LoadedSourceEvent > ( ) ;
6868 private readonly _onDidProgressStart = new Emitter < DebugProtocol . ProgressStartEvent > ( ) ;
69+ private readonly _onDidProgressUpdate = new Emitter < DebugProtocol . ProgressUpdateEvent > ( ) ;
6970 private readonly _onDidProgressEnd = new Emitter < DebugProtocol . ProgressEndEvent > ( ) ;
7071 private readonly _onDidCustomEvent = new Emitter < DebugProtocol . Event > ( ) ;
7172 private readonly _onDidEvent = new Emitter < DebugProtocol . Event > ( ) ;
@@ -142,6 +143,9 @@ export class RawDebugSession implements IDisposable {
142143 case 'progressStart' :
143144 this . _onDidProgressStart . fire ( event as DebugProtocol . ProgressStartEvent ) ;
144145 break ;
146+ case 'progressUpdate' :
147+ this . _onDidProgressUpdate . fire ( event as DebugProtocol . ProgressUpdateEvent ) ;
148+ break ;
145149 case 'progressEnd' :
146150 this . _onDidProgressEnd . fire ( event as DebugProtocol . ProgressEndEvent ) ;
147151 break ;
@@ -217,6 +221,10 @@ export class RawDebugSession implements IDisposable {
217221 return this . _onDidProgressStart . event ;
218222 }
219223
224+ get onDidProgressUpdate ( ) : Event < DebugProtocol . ProgressUpdateEvent > {
225+ return this . _onDidProgressUpdate . event ;
226+ }
227+
220228 get onDidProgressEnd ( ) : Event < DebugProtocol . ProgressEndEvent > {
221229 return this . _onDidProgressEnd . event ;
222230 }
Original file line number Diff line number Diff line change @@ -200,6 +200,7 @@ export interface IDebugSession extends ITreeElement {
200200 readonly onDidLoadedSource : Event < LoadedSourceEvent > ;
201201 readonly onDidCustomEvent : Event < DebugProtocol . Event > ;
202202 readonly onDidProgressStart : Event < DebugProtocol . ProgressStartEvent > ;
203+ readonly onDidProgressUpdate : Event < DebugProtocol . ProgressUpdateEvent > ;
203204 readonly onDidProgressEnd : Event < DebugProtocol . ProgressEndEvent > ;
204205
205206 // DAP request
Original file line number Diff line number Diff line change @@ -230,6 +230,10 @@ export class MockSession implements IDebugSession {
230230 throw new Error ( 'not implemented' ) ;
231231 }
232232
233+ get onDidProgressUpdate ( ) : Event < DebugProtocol . ProgressUpdateEvent > {
234+ throw new Error ( 'not implemented' ) ;
235+ }
236+
233237 get onDidProgressEnd ( ) : Event < DebugProtocol . ProgressEndEvent > {
234238 throw new Error ( 'not implemented' ) ;
235239 }
You can’t perform that action at this time.
0 commit comments