in src/mockDebug.ts [605:634]
private async progressSequence() {
const ID = '' + this._progressId++;
await timeout(100);
const title = this._isProgressCancellable ? 'Cancellable operation' : 'Long running operation';
const startEvent: DebugProtocol.ProgressStartEvent = new ProgressStartEvent(ID, title);
startEvent.body.cancellable = this._isProgressCancellable;
this._isProgressCancellable = !this._isProgressCancellable;
this.sendEvent(startEvent);
this.sendEvent(new OutputEvent(`start progress: ${ID}\n`));
let endMessage = 'progress ended';
for (let i = 0; i < 100; i++) {
await timeout(500);
this.sendEvent(new ProgressUpdateEvent(ID, `progress: ${i}`));
if (this._cancelledProgressId === ID) {
endMessage = 'progress cancelled';
this._cancelledProgressId = undefined;
this.sendEvent(new OutputEvent(`cancel progress: ${ID}\n`));
break;
}
}
this.sendEvent(new ProgressEndEvent(ID, endMessage));
this.sendEvent(new OutputEvent(`end progress: ${ID}\n`));
this._cancelledProgressId = undefined;
}