diff --git a/src/vs/workbench/parts/tasks/common/problemCollectors.ts b/src/vs/workbench/parts/tasks/common/problemCollectors.ts index e886d8ef1a9e14af057379d45d417109d2419650..c40e58579b1d0b8d51488fc1588099d3e41260fb 100644 --- a/src/vs/workbench/parts/tasks/common/problemCollectors.ts +++ b/src/vs/workbench/parts/tasks/common/problemCollectors.ts @@ -284,6 +284,11 @@ export class AbstractProblemCollector extends EventEmitter implements IDisposabl } return result; } + + protected cleanMarkerCaches(): void { + this.markers.clear(); + this.deliveredMarkers.clear(); + } } export enum ProblemHandlingStrategy { @@ -410,6 +415,7 @@ export class WatchingProblemCollector extends AbstractProblemCollector implement if (matches) { result = true; this.emit(ProblemCollectorEvents.WatchingBeginDetected, {}); + this.cleanMarkerCaches(); this.resetCurrentResource(); let owner = beginMatcher.problemMatcher.owner; let file = matches[beginMatcher.pattern.file]; @@ -435,6 +441,7 @@ export class WatchingProblemCollector extends AbstractProblemCollector implement let owner = endMatcher.problemMatcher.owner; this.resetCurrentResource(); this.cleanMarkers(owner); + this.cleanMarkerCaches(); } } return result;