about summary refs log tree commit diff
path: root/editors/code/src
diff options
context:
space:
mode:
authorAleksey Kladov <aleksey.kladov@gmail.com>2020-05-25 14:56:26 +0200
committerAleksey Kladov <aleksey.kladov@gmail.com>2020-05-25 14:56:26 +0200
commita30bdd9795770329e4562d8bfca60ebe2e52dea1 (patch)
tree510b580723f06fd3ae1e4c641001afa82a426b60 /editors/code/src
parent8686d0b0ac765c2144b22b897de1d8fda68ecc6e (diff)
downloadrust-a30bdd9795770329e4562d8bfca60ebe2e52dea1.tar.gz
rust-a30bdd9795770329e4562d8bfca60ebe2e52dea1.zip
Cleanup lsp extensions on the client side
Diffstat (limited to 'editors/code/src')
-rw-r--r--editors/code/src/commands.ts2
-rw-r--r--editors/code/src/debug.ts2
-rw-r--r--editors/code/src/inlay_hints.ts2
-rw-r--r--editors/code/src/lsp_ext.ts84
-rw-r--r--editors/code/src/run.ts2
-rw-r--r--editors/code/src/rust-analyzer-api.ts123
6 files changed, 88 insertions, 127 deletions
diff --git a/editors/code/src/commands.ts b/editors/code/src/commands.ts
index e080301405d..49e3845d5b1 100644
--- a/editors/code/src/commands.ts
+++ b/editors/code/src/commands.ts
@@ -1,6 +1,6 @@
 import * as vscode from 'vscode';
 import * as lc from 'vscode-languageclient';
-import * as ra from './rust-analyzer-api';
+import * as ra from './lsp_ext';
 
 import { Ctx, Cmd } from './ctx';
 import { applySnippetWorkspaceEdit, applySnippetTextEdits } from './snippets';
diff --git a/editors/code/src/debug.ts b/editors/code/src/debug.ts
index d3fe588e831..027504ecd2a 100644
--- a/editors/code/src/debug.ts
+++ b/editors/code/src/debug.ts
@@ -1,7 +1,7 @@
 import * as os from "os";
 import * as vscode from 'vscode';
 import * as path from 'path';
-import * as ra from './rust-analyzer-api';
+import * as ra from './lsp_ext';
 
 import { Cargo } from './cargo';
 import { Ctx } from "./ctx";
diff --git a/editors/code/src/inlay_hints.ts b/editors/code/src/inlay_hints.ts
index a2b07d00378..9e6d6045f34 100644
--- a/editors/code/src/inlay_hints.ts
+++ b/editors/code/src/inlay_hints.ts
@@ -1,6 +1,6 @@
 import * as lc from "vscode-languageclient";
 import * as vscode from 'vscode';
-import * as ra from './rust-analyzer-api';
+import * as ra from './lsp_ext';
 
 import { Ctx, Disposable } from './ctx';
 import { sendRequestWithRetry, isRustDocument, RustDocument, RustEditor, sleep } from './util';
diff --git a/editors/code/src/lsp_ext.ts b/editors/code/src/lsp_ext.ts
new file mode 100644
index 00000000000..2a06632619b
--- /dev/null
+++ b/editors/code/src/lsp_ext.ts
@@ -0,0 +1,84 @@
+/**
+ * This file mirrors `crates/rust-analyzer/src/req.rs` declarations.
+ */
+
+import * as lc from "vscode-languageclient";
+
+export const analyzerStatus = new lc.RequestType<null, string, void>("rust-analyzer/analyzerStatus");
+
+export const collectGarbage = new lc.RequestType<null, null, void>("rust-analyzer/collectGarbage");
+
+export interface SyntaxTreeParams {
+    textDocument: lc.TextDocumentIdentifier;
+    range: lc.Range | null;
+}
+export const syntaxTree = new lc.RequestType<SyntaxTreeParams, string, void>("rust-analyzer/syntaxTree");
+
+
+export interface ExpandMacroParams {
+    textDocument: lc.TextDocumentIdentifier;
+    position: lc.Position;
+}
+export interface ExpandedMacro {
+    name: string;
+    expansion: string;
+}
+export const expandMacro = new lc.RequestType<ExpandMacroParams, ExpandedMacro | null, void>("rust-analyzer/expandMacro");
+
+export interface MatchingBraceParams {
+    textDocument: lc.TextDocumentIdentifier;
+    positions: lc.Position[];
+}
+export const matchingBrace = new lc.RequestType<MatchingBraceParams, lc.Position[], void>("experimental/matchingBrace");
+
+export const parentModule = new lc.RequestType<lc.TextDocumentPositionParams, lc.Location[], void>("rust-analyzer/parentModule");
+
+export interface JoinLinesParams {
+    textDocument: lc.TextDocumentIdentifier;
+    ranges: lc.Range[];
+}
+export const joinLines = new lc.RequestType<JoinLinesParams, lc.TextEdit[], void>("experimental/joinLines");
+
+export const onEnter = new lc.RequestType<lc.TextDocumentPositionParams, lc.TextEdit[], void>("experimental/onEnter");
+
+export interface RunnablesParams {
+    textDocument: lc.TextDocumentIdentifier;
+    position: lc.Position | null;
+}
+export interface Runnable {
+    range: lc.Range;
+    label: string;
+    bin: string;
+    args: string[];
+    extraArgs: string[];
+    env: { [key: string]: string };
+    cwd: string | null;
+}
+export const runnables = new lc.RequestType<RunnablesParams, Runnable[], void>("rust-analyzer/runnables");
+
+export type InlayHint = InlayHint.TypeHint | InlayHint.ParamHint | InlayHint.ChainingHint;
+
+export namespace InlayHint {
+    export const enum Kind {
+        TypeHint = "TypeHint",
+        ParamHint = "ParameterHint",
+        ChainingHint = "ChainingHint",
+    }
+    interface Common {
+        range: lc.Range;
+        label: string;
+    }
+    export type TypeHint = Common & { kind: Kind.TypeHint };
+    export type ParamHint = Common & { kind: Kind.ParamHint };
+    export type ChainingHint = Common & { kind: Kind.ChainingHint };
+}
+export interface InlayHintsParams {
+    textDocument: lc.TextDocumentIdentifier;
+}
+export const inlayHints = new lc.RequestType<InlayHintsParams, InlayHint[], void>("rust-analyzer/inlayHints");
+
+export interface SsrParams {
+    query: string;
+    parseOnly: boolean;
+}
+export const ssr = new lc.RequestType<SsrParams, lc.WorkspaceEdit, void>('experimental/ssr');
diff --git a/editors/code/src/run.ts b/editors/code/src/run.ts
index 8f0487d74a1..2a7a429cfa6 100644
--- a/editors/code/src/run.ts
+++ b/editors/code/src/run.ts
@@ -1,6 +1,6 @@
 import * as vscode from 'vscode';
 import * as lc from 'vscode-languageclient';
-import * as ra from './rust-analyzer-api';
+import * as ra from './lsp_ext';
 
 import { Ctx, Cmd } from './ctx';
 import { startDebugSession, getDebugConfiguration } from './debug';
diff --git a/editors/code/src/rust-analyzer-api.ts b/editors/code/src/rust-analyzer-api.ts
deleted file mode 100644
index c10c0fa7894..00000000000
--- a/editors/code/src/rust-analyzer-api.ts
+++ /dev/null
@@ -1,123 +0,0 @@
-/**
- * This file mirrors `crates/rust-analyzer/src/req.rs` declarations.
- */
-
-import * as lc from "vscode-languageclient";
-
-type Option<T> = null | T;
-type Vec<T> = T[];
-type FxHashMap<K extends PropertyKey, V> = Record<K, V>;
-
-function request<TParams, TResult>(method: string) {
-    return new lc.RequestType<TParams, TResult, unknown>(`rust-analyzer/${method}`);
-}
-function notification<TParam>(method: string) {
-    return new lc.NotificationType<TParam>(method);
-}
-
-
-export const analyzerStatus = request<null, string>("analyzerStatus");
-
-
-export const collectGarbage = request<null, null>("collectGarbage");
-
-
-export interface SyntaxTreeParams {
-    textDocument: lc.TextDocumentIdentifier;
-    range: Option<lc.Range>;
-}
-export const syntaxTree = request<SyntaxTreeParams, string>("syntaxTree");
-
-
-export interface ExpandMacroParams {
-    textDocument: lc.TextDocumentIdentifier;
-    position: Option<lc.Position>;
-}
-export interface ExpandedMacro {
-    name: string;
-    expansion: string;
-}
-export const expandMacro = request<ExpandMacroParams, Option<ExpandedMacro>>("expandMacro");
-
-
-export interface MatchingBraceParams {
-    textDocument: lc.TextDocumentIdentifier;
-    positions: lc.Position[];
-}
-export const matchingBrace = new lc.RequestType<MatchingBraceParams, lc.Position[], unknown>('experimental/matchingBrace');
-
-export interface PublishDecorationsParams {
-    uri: string;
-    decorations: Vec<Decoration>;
-}
-export interface Decoration {
-    range: lc.Range;
-    tag: string;
-    bindingHash: Option<string>;
-}
-export const decorationsRequest = request<lc.TextDocumentIdentifier, Vec<Decoration>>("decorationsRequest");
-
-
-export const parentModule = request<lc.TextDocumentPositionParams, Vec<lc.Location>>("parentModule");
-
-
-export interface JoinLinesParams {
-    textDocument: lc.TextDocumentIdentifier;
-    ranges: lc.Range[];
-}
-export const joinLines = new lc.RequestType<JoinLinesParams, lc.TextEdit[], unknown>('experimental/joinLines');
-
-export const onEnter = new lc.RequestType<lc.TextDocumentPositionParams, lc.TextEdit[], unknown>('experimental/onEnter');
-
-export interface RunnablesParams {
-    textDocument: lc.TextDocumentIdentifier;
-    position: Option<lc.Position>;
-}
-export interface Runnable {
-    range: lc.Range;
-    label: string;
-    bin: string;
-    args: Vec<string>;
-    extraArgs: Vec<string>;
-    env: FxHashMap<string, string>;
-    cwd: Option<string>;
-}
-export const runnables = request<RunnablesParams, Vec<Runnable>>("runnables");
-
-export type InlayHint = InlayHint.TypeHint | InlayHint.ParamHint | InlayHint.ChainingHint;
-
-export namespace InlayHint {
-    export const enum Kind {
-        TypeHint = "TypeHint",
-        ParamHint = "ParameterHint",
-        ChainingHint = "ChainingHint",
-    }
-    interface Common {
-        range: lc.Range;
-        label: string;
-    }
-    export type TypeHint = Common & { kind: Kind.TypeHint };
-    export type ParamHint = Common & { kind: Kind.ParamHint };
-    export type ChainingHint = Common & { kind: Kind.ChainingHint };
-}
-export interface InlayHintsParams {
-    textDocument: lc.TextDocumentIdentifier;
-}
-export const inlayHints = request<InlayHintsParams, Vec<InlayHint>>("inlayHints");
-
-
-export interface SsrParams {
-    query: string;
-    parseOnly: boolean;
-}
-export const ssr = new lc.RequestType<SsrParams, lc.WorkspaceEdit, unknown>('experimental/ssr');
-
-
-export const publishDecorations = notification<PublishDecorationsParams>("publishDecorations");
-
-
-export interface SourceChange {
-    label: string;
-    workspaceEdit: lc.WorkspaceEdit;
-    cursorPosition: Option<lc.TextDocumentPositionParams>;
-}