From 21fd94b70c9b7f3f1bd064f03fb66a36cc1ab7e8 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Fri, 8 Nov 2019 14:46:51 -0800 Subject: [PATCH] Make sure buffer sync reset clears pending diagnostics --- .../src/features/bufferSyncSupport.ts | 11 +++++++---- .../src/typeScriptServiceClientHost.ts | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/extensions/typescript-language-features/src/features/bufferSyncSupport.ts b/extensions/typescript-language-features/src/features/bufferSyncSupport.ts index 54cb3e0bc5f..6826005b897 100644 --- a/extensions/typescript-language-features/src/features/bufferSyncSupport.ts +++ b/extensions/typescript-language-features/src/features/bufferSyncSupport.ts @@ -394,7 +394,10 @@ export default class BufferSyncSupport extends Disposable { return vscode.Uri.file(filePath); } - public reOpenDocuments(): void { + public reset(): void { + this.pendingGetErr?.cancel(); + this.pendingDiagnostics.clear(); + for (const buffer of this.syncedBuffers.allBuffers) { buffer.open(); } @@ -523,9 +526,9 @@ export default class BufferSyncSupport extends Disposable { if (this.pendingGetErr) { this.pendingGetErr.cancel(); - for (const file of this.pendingGetErr.files.entries) { - if (this.syncedBuffers.get(file.resource)) { - orderedFileSet.set(file.resource, undefined); + for (const { resource } of this.pendingGetErr.files.entries) { + if (this.syncedBuffers.get(resource)) { + orderedFileSet.set(resource, undefined); } } } diff --git a/extensions/typescript-language-features/src/typeScriptServiceClientHost.ts b/extensions/typescript-language-features/src/typeScriptServiceClientHost.ts index cbcbc2e76a6..c0c1d6edc17 100644 --- a/extensions/typescript-language-features/src/typeScriptServiceClientHost.ts +++ b/extensions/typescript-language-features/src/typeScriptServiceClientHost.ts @@ -182,7 +182,7 @@ export default class TypeScriptServiceClientHost extends Disposable { private populateService(): void { this.fileConfigurationManager.reset(); - this.client.bufferSyncSupport.reOpenDocuments(); + this.client.bufferSyncSupport.reset(); this.client.bufferSyncSupport.requestAllDiagnostics(); // See https://github.com/Microsoft/TypeScript/issues/5530