diff options
author | Aleksey Kladov <[email protected]> | 2020-02-27 09:19:56 +0000 |
---|---|---|
committer | Aleksey Kladov <[email protected]> | 2020-02-27 09:19:56 +0000 |
commit | b49508ffe3d34be0520c594bae69e906f22af513 (patch) | |
tree | c9a7536741f866ad188818bced993fe7fc88bdd7 /editors | |
parent | 7f7d96cffed6ed4836432a16cfc1dbd080bbab17 (diff) |
Fix flickering with new syntax highlighting
Diffstat (limited to 'editors')
-rw-r--r-- | editors/code/src/client.ts | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/editors/code/src/client.ts b/editors/code/src/client.ts index 44bd04c21..1f90af898 100644 --- a/editors/code/src/client.ts +++ b/editors/code/src/client.ts | |||
@@ -3,7 +3,7 @@ import * as vscode from 'vscode'; | |||
3 | 3 | ||
4 | import { Config } from './config'; | 4 | import { Config } from './config'; |
5 | import { CallHierarchyFeature } from 'vscode-languageclient/lib/callHierarchy.proposed'; | 5 | import { CallHierarchyFeature } from 'vscode-languageclient/lib/callHierarchy.proposed'; |
6 | import { SemanticTokensFeature } from 'vscode-languageclient/lib/semanticTokens.proposed'; | 6 | import { SemanticTokensFeature, DocumentSemanticsTokensSignature } from 'vscode-languageclient/lib/semanticTokens.proposed'; |
7 | 7 | ||
8 | export async function createClient(config: Config, serverPath: string): Promise<lc.LanguageClient> { | 8 | export async function createClient(config: Config, serverPath: string): Promise<lc.LanguageClient> { |
9 | // '.' Is the fallback if no folder is open | 9 | // '.' Is the fallback if no folder is open |
@@ -42,6 +42,14 @@ export async function createClient(config: Config, serverPath: string): Promise< | |||
42 | rustfmtArgs: config.rustfmtArgs, | 42 | rustfmtArgs: config.rustfmtArgs, |
43 | }, | 43 | }, |
44 | traceOutputChannel, | 44 | traceOutputChannel, |
45 | middleware: { | ||
46 | // Workaround for https://github.com/microsoft/vscode-languageserver-node/issues/576 | ||
47 | async provideDocumentSemanticTokens(document: vscode.TextDocument, token: vscode.CancellationToken, next: DocumentSemanticsTokensSignature) { | ||
48 | let res = await next(document, token); | ||
49 | if (res === undefined) throw new Error('busy'); | ||
50 | return res; | ||
51 | } | ||
52 | } as any | ||
45 | }; | 53 | }; |
46 | 54 | ||
47 | const res = new lc.LanguageClient( | 55 | const res = new lc.LanguageClient( |