diff --git a/extensions/typescript-language-features/src/features/semanticTokens.ts b/extensions/typescript-language-features/src/features/semanticTokens.ts index fc6c770a971..3c3aff06202 100644 --- a/extensions/typescript-language-features/src/features/semanticTokens.ts +++ b/extensions/typescript-language-features/src/features/semanticTokens.ts @@ -68,11 +68,21 @@ class DocumentSemanticTokensProvider implements vscode.DocumentSemanticTokensPro return null; } + const versionBeforeRequest = document.version; + const response = await (this.client as ExperimentalProtocol.IExtendedTypeScriptServiceClient).execute('encodedSemanticClassifications-full', requestArg, token); if (response.type !== 'response' || !response.body) { return null; } + const versionAfterRequest = document.version; + + if (versionBeforeRequest !== versionAfterRequest) { + // cannot convert result's offsets to (line;col) values correctly + // a new request will come in soon... + return null; + } + const tokenSpan = response.body.spans; const builder = new vscode.SemanticTokensBuilder();