mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-14 21:16:50 +00:00
Merge #7701
7701: Remove semantic tokens workaround r=SomeoneToIgnore a=kjeremy Let's try this again. Co-authored-by: kjeremy <kjeremy@gmail.com>
This commit is contained in:
commit
2920e7b28b
28
editors/code/package-lock.json
generated
28
editors/code/package-lock.json
generated
@ -2931,22 +2931,22 @@
|
||||
}
|
||||
},
|
||||
"node_modules/vscode-languageclient": {
|
||||
"version": "7.1.0-next.1",
|
||||
"resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.1.0-next.1.tgz",
|
||||
"integrity": "sha512-pMdMyJ5e3CfdyvtDsj6ytTO+WcmrvtrFJWvBk4rZnIKmA3aCjrqTYI0XSWN/Cf4kcaV1J2+fTZf/2RcP2SzDiQ==",
|
||||
"version": "7.1.0-next.2",
|
||||
"resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.1.0-next.2.tgz",
|
||||
"integrity": "sha512-LhSxbPcUDzlBRCp5vRo4ZRk75CrfXZ2FF1soXIlbHp9TeGQI1M3YD8ECAe0VvfYD/STemMzJrj4cHA2oWiOg0w==",
|
||||
"dependencies": {
|
||||
"minimatch": "^3.0.4",
|
||||
"semver": "^7.3.4",
|
||||
"vscode-languageserver-protocol": "3.17.0-next.1"
|
||||
"vscode-languageserver-protocol": "3.17.0-next.3"
|
||||
},
|
||||
"engines": {
|
||||
"vscode": "^1.53.0"
|
||||
}
|
||||
},
|
||||
"node_modules/vscode-languageserver-protocol": {
|
||||
"version": "3.17.0-next.1",
|
||||
"resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.0-next.1.tgz",
|
||||
"integrity": "sha512-cbFKGk+Q7HQ5RDdf6qiQrRv9qxR/87hBm/GrfLcQ5rmHPJOXg//ZYCXEQF+wSJNmcc6IrnET2cHJUxlZYHUEXA==",
|
||||
"version": "3.17.0-next.3",
|
||||
"resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.0-next.3.tgz",
|
||||
"integrity": "sha512-II+BN3BqsGXyasN8BDgLFlELxkRLLWkafFzRZMEfMTqJ6oNMINTbMDZgZ6YpbMLHwfoq+h3Q04zLOZqF4YW6bg==",
|
||||
"dependencies": {
|
||||
"vscode-jsonrpc": "6.1.0-next.1",
|
||||
"vscode-languageserver-types": "3.17.0-next.1"
|
||||
@ -5629,19 +5629,19 @@
|
||||
"integrity": "sha512-2s1qEg8N97p8pooHnA8xgR4vnslCTJuE3rQqSQeJuSDklFcQSn9yW8gOinH/1vKeWiPuzHTG9FFty91v4v9Pag=="
|
||||
},
|
||||
"vscode-languageclient": {
|
||||
"version": "7.1.0-next.1",
|
||||
"resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.1.0-next.1.tgz",
|
||||
"integrity": "sha512-pMdMyJ5e3CfdyvtDsj6ytTO+WcmrvtrFJWvBk4rZnIKmA3aCjrqTYI0XSWN/Cf4kcaV1J2+fTZf/2RcP2SzDiQ==",
|
||||
"version": "7.1.0-next.2",
|
||||
"resolved": "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.1.0-next.2.tgz",
|
||||
"integrity": "sha512-LhSxbPcUDzlBRCp5vRo4ZRk75CrfXZ2FF1soXIlbHp9TeGQI1M3YD8ECAe0VvfYD/STemMzJrj4cHA2oWiOg0w==",
|
||||
"requires": {
|
||||
"minimatch": "^3.0.4",
|
||||
"semver": "^7.3.4",
|
||||
"vscode-languageserver-protocol": "3.17.0-next.1"
|
||||
"vscode-languageserver-protocol": "3.17.0-next.3"
|
||||
}
|
||||
},
|
||||
"vscode-languageserver-protocol": {
|
||||
"version": "3.17.0-next.1",
|
||||
"resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.0-next.1.tgz",
|
||||
"integrity": "sha512-cbFKGk+Q7HQ5RDdf6qiQrRv9qxR/87hBm/GrfLcQ5rmHPJOXg//ZYCXEQF+wSJNmcc6IrnET2cHJUxlZYHUEXA==",
|
||||
"version": "3.17.0-next.3",
|
||||
"resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.0-next.3.tgz",
|
||||
"integrity": "sha512-II+BN3BqsGXyasN8BDgLFlELxkRLLWkafFzRZMEfMTqJ6oNMINTbMDZgZ6YpbMLHwfoq+h3Q04zLOZqF4YW6bg==",
|
||||
"requires": {
|
||||
"vscode-jsonrpc": "6.1.0-next.1",
|
||||
"vscode-languageserver-types": "3.17.0-next.1"
|
||||
|
@ -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) => {
|
||||
|
Loading…
Reference in New Issue
Block a user