From 0028e73927fc4e3402c7243511936de0f2bc17bc Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Tue, 16 May 2023 22:08:58 +0200 Subject: [PATCH] fix: Force disable augmentsSyntaxTokens capability on VSCode --- editors/code/src/client.ts | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/editors/code/src/client.ts b/editors/code/src/client.ts index b27d9f5494..f721fcce76 100644 --- a/editors/code/src/client.ts +++ b/editors/code/src/client.ts @@ -366,6 +366,7 @@ export async function createClient( // To turn on all proposed features use: client.registerProposedFeatures(); client.registerFeature(new ExperimentalFeatures()); + client.registerFeature(new OverrideFeatures()); return client; } @@ -401,6 +402,25 @@ class ExperimentalFeatures implements lc.StaticFeature { dispose(): void {} } +class OverrideFeatures implements lc.StaticFeature { + getState(): lc.FeatureState { + return { kind: "static" }; + } + fillClientCapabilities(capabilities: lc.ClientCapabilities): void { + // Force disable `augmentsSyntaxTokens`, VSCode's textmate grammar is somewhat incomplete + // making the experience generally worse + const caps = capabilities.textDocument?.semanticTokens; + if (caps) { + caps.augmentsSyntaxTokens = false; + } + } + initialize( + _capabilities: lc.ServerCapabilities, + _documentSelector: lc.DocumentSelector | undefined + ): void {} + dispose(): void {} +} + function isCodeActionWithoutEditsAndCommands(value: any): boolean { const candidate: lc.CodeAction = value; return (