aboutsummaryrefslogtreecommitdiff
path: root/editors/code/src/rust-analyzer-api.ts
diff options
context:
space:
mode:
Diffstat (limited to 'editors/code/src/rust-analyzer-api.ts')
-rw-r--r--editors/code/src/rust-analyzer-api.ts124
1 files changed, 0 insertions, 124 deletions
diff --git a/editors/code/src/rust-analyzer-api.ts b/editors/code/src/rust-analyzer-api.ts
deleted file mode 100644
index 900c5cd5b..000000000
--- a/editors/code/src/rust-analyzer-api.ts
+++ /dev/null
@@ -1,124 +0,0 @@
1/**
2 * This file mirrors `crates/rust-analyzer/src/req.rs` declarations.
3 */
4
5import * as lc from "vscode-languageclient";
6
7type Option<T> = null | T;
8type Vec<T> = T[];
9type FxHashMap<K extends PropertyKey, V> = Record<K, V>;
10
11function request<TParams, TResult>(method: string) {
12 return new lc.RequestType<TParams, TResult, unknown>(`rust-analyzer/${method}`);
13}
14function notification<TParam>(method: string) {
15 return new lc.NotificationType<TParam>(method);
16}
17
18
19export const analyzerStatus = request<null, string>("analyzerStatus");
20
21
22export const collectGarbage = request<null, null>("collectGarbage");
23
24
25export interface SyntaxTreeParams {
26 textDocument: lc.TextDocumentIdentifier;
27 range: Option<lc.Range>;
28}
29export const syntaxTree = request<SyntaxTreeParams, string>("syntaxTree");
30
31
32export interface ExpandMacroParams {
33 textDocument: lc.TextDocumentIdentifier;
34 position: Option<lc.Position>;
35}
36export interface ExpandedMacro {
37 name: string;
38 expansion: string;
39}
40export const expandMacro = request<ExpandMacroParams, Option<ExpandedMacro>>("expandMacro");
41
42
43export interface MatchingBraceParams {
44 textDocument: lc.TextDocumentIdentifier;
45 positions: lc.Position[];
46}
47export const matchingBrace = new lc.RequestType<MatchingBraceParams, lc.Position[], unknown>('experimental/matchingBrace');
48
49export interface PublishDecorationsParams {
50 uri: string;
51 decorations: Vec<Decoration>;
52}
53export interface Decoration {
54 range: lc.Range;
55 tag: string;
56 bindingHash: Option<string>;
57}
58export const decorationsRequest = request<lc.TextDocumentIdentifier, Vec<Decoration>>("decorationsRequest");
59
60
61export const parentModule = request<lc.TextDocumentPositionParams, Vec<lc.Location>>("parentModule");
62
63
64export interface JoinLinesParams {
65 textDocument: lc.TextDocumentIdentifier;
66 ranges: lc.Range[];
67}
68export const joinLines = new lc.RequestType<JoinLinesParams, lc.TextEdit[], unknown>('experimental/joinLines');
69
70
71export const onEnter = request<lc.TextDocumentPositionParams, Option<lc.WorkspaceEdit>>("onEnter");
72
73export interface RunnablesParams {
74 textDocument: lc.TextDocumentIdentifier;
75 position: Option<lc.Position>;
76}
77export interface Runnable {
78 range: lc.Range;
79 label: string;
80 bin: string;
81 args: Vec<string>;
82 extraArgs: Vec<string>;
83 env: FxHashMap<string, string>;
84 cwd: Option<string>;
85}
86export const runnables = request<RunnablesParams, Vec<Runnable>>("runnables");
87
88export type InlayHint = InlayHint.TypeHint | InlayHint.ParamHint | InlayHint.ChainingHint;
89
90export namespace InlayHint {
91 export const enum Kind {
92 TypeHint = "TypeHint",
93 ParamHint = "ParameterHint",
94 ChainingHint = "ChainingHint",
95 }
96 interface Common {
97 range: lc.Range;
98 label: string;
99 }
100 export type TypeHint = Common & { kind: Kind.TypeHint };
101 export type ParamHint = Common & { kind: Kind.ParamHint };
102 export type ChainingHint = Common & { kind: Kind.ChainingHint };
103}
104export interface InlayHintsParams {
105 textDocument: lc.TextDocumentIdentifier;
106}
107export const inlayHints = request<InlayHintsParams, Vec<InlayHint>>("inlayHints");
108
109
110export interface SsrParams {
111 query: string;
112 parseOnly: boolean;
113}
114export const ssr = new lc.RequestType<SsrParams, lc.WorkspaceEdit, unknown>('experimental/ssr');
115
116
117export const publishDecorations = notification<PublishDecorationsParams>("publishDecorations");
118
119
120export interface SourceChange {
121 label: string;
122 workspaceEdit: lc.WorkspaceEdit;
123 cursorPosition: Option<lc.TextDocumentPositionParams>;
124}