aboutsummaryrefslogtreecommitdiff
path: root/editors/code/src
diff options
context:
space:
mode:
Diffstat (limited to 'editors/code/src')
-rw-r--r--editors/code/src/client.ts15
-rw-r--r--editors/code/src/commands.ts14
-rw-r--r--editors/code/src/ctx.ts2
-rw-r--r--editors/code/src/lsp_ext.ts6
-rw-r--r--editors/code/src/util.ts2
5 files changed, 15 insertions, 24 deletions
diff --git a/editors/code/src/client.ts b/editors/code/src/client.ts
index f5db55b8c..1ba2352ee 100644
--- a/editors/code/src/client.ts
+++ b/editors/code/src/client.ts
@@ -1,10 +1,7 @@
1import * as lc from 'vscode-languageclient'; 1import * as lc from 'vscode-languageclient/node';
2import * as vscode from 'vscode'; 2import * as vscode from 'vscode';
3import * as ra from '../src/lsp_ext'; 3import * as ra from '../src/lsp_ext';
4import * as Is from 'vscode-languageclient/lib/utils/is'; 4import * as Is from 'vscode-languageclient/lib/common/utils/is';
5
6import { CallHierarchyFeature } from 'vscode-languageclient/lib/callHierarchy.proposed';
7import { SemanticTokensFeature } from 'vscode-languageclient/lib/semanticTokens.proposed';
8import { assert } from './util'; 5import { assert } from './util';
9 6
10function renderCommand(cmd: ra.CommandLink) { 7function renderCommand(cmd: ra.CommandLink) {
@@ -57,7 +54,7 @@ export function createClient(serverPath: string, cwd: string): lc.LanguageClient
57 return hover; 54 return hover;
58 }, 55 },
59 (error) => { 56 (error) => {
60 client.logFailedRequest(lc.HoverRequest.type, error); 57 client.handleFailedRequest(lc.HoverRequest.type, error, null);
61 return Promise.resolve(null); 58 return Promise.resolve(null);
62 }); 59 });
63 }, 60 },
@@ -140,12 +137,6 @@ export function createClient(serverPath: string, cwd: string): lc.LanguageClient
140 ); 137 );
141 138
142 // To turn on all proposed features use: client.registerProposedFeatures(); 139 // To turn on all proposed features use: client.registerProposedFeatures();
143 // Here we want to enable CallHierarchyFeature and SemanticTokensFeature
144 // since they are available on stable.
145 // Note that while these features are stable in vscode their LSP protocol
146 // implementations are still in the "proposed" category for 3.16.
147 client.registerFeature(new CallHierarchyFeature(client));
148 client.registerFeature(new SemanticTokensFeature(client));
149 client.registerFeature(new ExperimentalFeatures()); 140 client.registerFeature(new ExperimentalFeatures());
150 141
151 return client; 142 return client;
diff --git a/editors/code/src/commands.ts b/editors/code/src/commands.ts
index d0faf4745..e9581a9b5 100644
--- a/editors/code/src/commands.ts
+++ b/editors/code/src/commands.ts
@@ -21,7 +21,7 @@ export function analyzerStatus(ctx: Ctx): Cmd {
21 provideTextDocumentContent(_uri: vscode.Uri): vscode.ProviderResult<string> { 21 provideTextDocumentContent(_uri: vscode.Uri): vscode.ProviderResult<string> {
22 if (!vscode.window.activeTextEditor) return ''; 22 if (!vscode.window.activeTextEditor) return '';
23 23
24 return ctx.client.sendRequest(ra.analyzerStatus, null); 24 return ctx.client.sendRequest(ra.analyzerStatus);
25 } 25 }
26 26
27 get onDidChange(): vscode.Event<vscode.Uri> { 27 get onDidChange(): vscode.Event<vscode.Uri> {
@@ -63,7 +63,7 @@ export function memoryUsage(ctx: Ctx): Cmd {
63 provideTextDocumentContent(_uri: vscode.Uri): vscode.ProviderResult<string> { 63 provideTextDocumentContent(_uri: vscode.Uri): vscode.ProviderResult<string> {
64 if (!vscode.window.activeTextEditor) return ''; 64 if (!vscode.window.activeTextEditor) return '';
65 65
66 return ctx.client.sendRequest(ra.memoryUsage, null).then((mem) => { 66 return ctx.client.sendRequest(ra.memoryUsage).then((mem: any) => {
67 return 'Per-query memory usage:\n' + mem + '\n(note: database has been cleared)'; 67 return 'Per-query memory usage:\n' + mem + '\n(note: database has been cleared)';
68 }); 68 });
69 } 69 }
@@ -121,7 +121,7 @@ export function joinLines(ctx: Ctx): Cmd {
121 textDocument: { uri: editor.document.uri.toString() }, 121 textDocument: { uri: editor.document.uri.toString() },
122 }); 122 });
123 editor.edit((builder) => { 123 editor.edit((builder) => {
124 client.protocol2CodeConverter.asTextEdits(items).forEach((edit) => { 124 client.protocol2CodeConverter.asTextEdits(items).forEach((edit: any) => {
125 builder.replace(edit.range, edit.newText); 125 builder.replace(edit.range, edit.newText);
126 }); 126 });
127 }); 127 });
@@ -140,8 +140,8 @@ export function onEnter(ctx: Ctx): Cmd {
140 position: client.code2ProtocolConverter.asPosition( 140 position: client.code2ProtocolConverter.asPosition(
141 editor.selection.active, 141 editor.selection.active,
142 ), 142 ),
143 }).catch(_error => { 143 }).catch((_error: any) => {
144 // client.logFailedRequest(OnEnterRequest.type, error); 144 // client.handleFailedRequest(OnEnterRequest.type, error, null);
145 return null; 145 return null;
146 }); 146 });
147 if (!lcEdits) return false; 147 if (!lcEdits) return false;
@@ -195,7 +195,7 @@ export function ssr(ctx: Ctx): Cmd {
195 195
196 const options: vscode.InputBoxOptions = { 196 const options: vscode.InputBoxOptions = {
197 value: "() ==>> ()", 197 value: "() ==>> ()",
198 prompt: "Enter request, for example 'Foo($a) ==> Foo::new($a)' ", 198 prompt: "Enter request, for example 'Foo($a) ==>> Foo::new($a)' ",
199 validateInput: async (x: string) => { 199 validateInput: async (x: string) => {
200 try { 200 try {
201 await client.sendRequest(ra.ssr, { 201 await client.sendRequest(ra.ssr, {
@@ -372,7 +372,7 @@ export function expandMacro(ctx: Ctx): Cmd {
372} 372}
373 373
374export function reloadWorkspace(ctx: Ctx): Cmd { 374export function reloadWorkspace(ctx: Ctx): Cmd {
375 return async () => ctx.client.sendRequest(ra.reloadWorkspace, null); 375 return async () => ctx.client.sendRequest(ra.reloadWorkspace);
376} 376}
377 377
378export function showReferences(ctx: Ctx): Cmd { 378export function showReferences(ctx: Ctx): Cmd {
diff --git a/editors/code/src/ctx.ts b/editors/code/src/ctx.ts
index 543f7e02e..d39864d33 100644
--- a/editors/code/src/ctx.ts
+++ b/editors/code/src/ctx.ts
@@ -1,5 +1,5 @@
1import * as vscode from 'vscode'; 1import * as vscode from 'vscode';
2import * as lc from 'vscode-languageclient'; 2import * as lc from 'vscode-languageclient/node';
3import * as ra from './lsp_ext'; 3import * as ra from './lsp_ext';
4 4
5import { Config } from './config'; 5import { Config } from './config';
diff --git a/editors/code/src/lsp_ext.ts b/editors/code/src/lsp_ext.ts
index f280bba3d..d167041c4 100644
--- a/editors/code/src/lsp_ext.ts
+++ b/editors/code/src/lsp_ext.ts
@@ -4,8 +4,8 @@
4 4
5import * as lc from "vscode-languageclient"; 5import * as lc from "vscode-languageclient";
6 6
7export const analyzerStatus = new lc.RequestType<null, string, void>("rust-analyzer/analyzerStatus"); 7export const analyzerStatus = new lc.RequestType0<string, void>("rust-analyzer/analyzerStatus");
8export const memoryUsage = new lc.RequestType<null, string, void>("rust-analyzer/memoryUsage"); 8export const memoryUsage = new lc.RequestType0<string, void>("rust-analyzer/memoryUsage");
9 9
10export type Status = "loading" | "ready" | "invalid" | "needsReload"; 10export type Status = "loading" | "ready" | "invalid" | "needsReload";
11export interface StatusParams { 11export interface StatusParams {
@@ -13,7 +13,7 @@ export interface StatusParams {
13} 13}
14export const status = new lc.NotificationType<StatusParams>("rust-analyzer/status"); 14export const status = new lc.NotificationType<StatusParams>("rust-analyzer/status");
15 15
16export const reloadWorkspace = new lc.RequestType<null, null, void>("rust-analyzer/reloadWorkspace"); 16export const reloadWorkspace = new lc.RequestType0<null, void>("rust-analyzer/reloadWorkspace");
17 17
18export interface SyntaxTreeParams { 18export interface SyntaxTreeParams {
19 textDocument: lc.TextDocumentIdentifier; 19 textDocument: lc.TextDocumentIdentifier;
diff --git a/editors/code/src/util.ts b/editors/code/src/util.ts
index ec2087502..08159b43c 100644
--- a/editors/code/src/util.ts
+++ b/editors/code/src/util.ts
@@ -1,4 +1,4 @@
1import * as lc from "vscode-languageclient"; 1import * as lc from "vscode-languageclient/node";
2import * as vscode from "vscode"; 2import * as vscode from "vscode";
3import { strict as nativeAssert } from "assert"; 3import { strict as nativeAssert } from "assert";
4import { spawnSync } from "child_process"; 4import { spawnSync } from "child_process";