fix: Force disable augmentsSyntaxTokens capability on VSCode

This commit is contained in:
Lukas Wirth 2023-05-16 22:08:58 +02:00
parent 2f8cd66fb4
commit 0028e73927

View File

@ -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 (