mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-01 06:11:35 +00:00
Auto merge of #14822 - Veykril:augmentsSyntaxTokens-vscode, r=Veykril
fix: Force disable augmentsSyntaxTokens capability on VSCode The default textmate grammar for rust in VSCode is pretty brittle, quite often coloring things very differently than we'd like to so we force full semantic highlighting by disabling that config.
This commit is contained in:
commit
673008aaa2
1 changed files with 20 additions and 0 deletions
|
@ -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 (
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue