From 0fe69bd5298193a3bf0687a2347f81c7fcee1755 Mon Sep 17 00:00:00 2001 From: Martin Aeschlimann Date: Mon, 13 Jan 2020 12:42:45 +0100 Subject: [PATCH] TS semantic highlighting: check api version --- .../src/features/semanticTokens.ts | 8 ++++++++ extensions/typescript-language-features/src/utils/api.ts | 1 + 2 files changed, 9 insertions(+) diff --git a/extensions/typescript-language-features/src/features/semanticTokens.ts b/extensions/typescript-language-features/src/features/semanticTokens.ts index fefb8e2271f..f9f489321a2 100644 --- a/extensions/typescript-language-features/src/features/semanticTokens.ts +++ b/extensions/typescript-language-features/src/features/semanticTokens.ts @@ -6,8 +6,16 @@ import * as vscode from 'vscode'; import { ITypeScriptServiceClient, ExecConfig, ServerResponse } from '../typescriptService'; import * as Proto from '../protocol'; +import { VersionDependentRegistration } from '../utils/dependentRegistration'; +import API from '../utils/api'; + +const minTypeScriptVersion = API.v370; export function register(selector: vscode.DocumentSelector, client: ITypeScriptServiceClient) { + return new VersionDependentRegistration(client, minTypeScriptVersion, () => { + const provider = new SemanticTokensProvider(client); + return vscode.languages.registerSemanticTokensProvider(selector, provider, provider.getLegend()); + }); const provider = new SemanticTokensProvider(client); return vscode.languages.registerSemanticTokensProvider(selector, provider, provider.getLegend()); } diff --git a/extensions/typescript-language-features/src/utils/api.ts b/extensions/typescript-language-features/src/utils/api.ts index 0fa41cb01a0..8f181f14b65 100644 --- a/extensions/typescript-language-features/src/utils/api.ts +++ b/extensions/typescript-language-features/src/utils/api.ts @@ -31,6 +31,7 @@ export default class API { public static readonly v340 = API.fromSimpleString('3.4.0'); public static readonly v345 = API.fromSimpleString('3.4.5'); public static readonly v350 = API.fromSimpleString('3.5.0'); + public static readonly v370 = API.fromSimpleString('3.7.0'); public static readonly v380 = API.fromSimpleString('3.8.0'); public static fromVersionString(versionString: string): API {