]> git.lizzy.rs Git - rust.git/commitdiff
Remove Semantic Tokens flicker workaround
authorkjeremy <kjeremy@gmail.com>
Tue, 16 Feb 2021 21:27:30 +0000 (16:27 -0500)
committerkjeremy <kjeremy@gmail.com>
Tue, 16 Feb 2021 21:27:30 +0000 (16:27 -0500)
https://github.com/microsoft/vscode-languageserver-node/issues/576 has been closed with
the latest vscode-languageclient release.

editors/code/src/client.ts

index db5f4c023de42bd028af838a48f086ab8dbf5876..0771ca3b69a7cf2e2a442df1627973b59febef58 100644 (file)
@@ -2,7 +2,6 @@ import * as lc from 'vscode-languageclient/node';
 import * as vscode from 'vscode';
 import * as ra from '../src/lsp_ext';
 import * as Is from 'vscode-languageclient/lib/common/utils/is';
-import { DocumentSemanticsTokensSignature, DocumentSemanticsTokensEditsSignature, DocumentRangeSemanticTokensSignature } from 'vscode-languageclient/lib/common/semanticTokens';
 import { assert } from './util';
 import { WorkspaceEdit } from 'vscode';
 
@@ -24,13 +23,6 @@ function renderHoverActions(actions: ra.CommandLinkGroup[]): vscode.MarkdownStri
     return result;
 }
 
-// Workaround for https://github.com/microsoft/vscode-languageserver-node/issues/576
-async function semanticHighlightingWorkaround<R, F extends (...args: any[]) => vscode.ProviderResult<R>>(next: F, ...args: Parameters<F>): Promise<R> {
-    const res = await next(...args);
-    if (res == null) throw new Error('busy');
-    return res;
-}
-
 export function createClient(serverPath: string, cwd: string, extraEnv: Env): lc.LanguageClient {
     // '.' Is the fallback if no folder is open
     // TODO?: Workspace folders support Uri's (eg: file://test.txt).
@@ -57,15 +49,6 @@ export function createClient(serverPath: string, cwd: string, extraEnv: Env): lc
         diagnosticCollectionName: "rustc",
         traceOutputChannel,
         middleware: {
-            provideDocumentSemanticTokens(document: vscode.TextDocument, token: vscode.CancellationToken, next: DocumentSemanticsTokensSignature): vscode.ProviderResult<vscode.SemanticTokens> {
-                return semanticHighlightingWorkaround(next, document, token);
-            },
-            provideDocumentSemanticTokensEdits(document: vscode.TextDocument, previousResultId: string, token: vscode.CancellationToken, next: DocumentSemanticsTokensEditsSignature): vscode.ProviderResult<vscode.SemanticTokensEdits | vscode.SemanticTokens> {
-                return semanticHighlightingWorkaround(next, document, previousResultId, token);
-            },
-            provideDocumentRangeSemanticTokens(document: vscode.TextDocument, range: vscode.Range, token: vscode.CancellationToken, next: DocumentRangeSemanticTokensSignature): vscode.ProviderResult<vscode.SemanticTokens> {
-                return semanticHighlightingWorkaround(next, document, range, token);
-            },
             async provideHover(document: vscode.TextDocument, position: vscode.Position, token: vscode.CancellationToken, _next: lc.ProvideHoverSignature) {
                 return client.sendRequest(lc.HoverRequest.type, client.code2ProtocolConverter.asTextDocumentPositionParams(document, position), token).then(
                     (result) => {