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.ts123
1 files changed, 0 insertions, 123 deletions
diff --git a/editors/code/src/rust-analyzer-api.ts b/editors/code/src/rust-analyzer-api.ts
deleted file mode 100644
index c10c0fa78..000000000
--- a/editors/code/src/rust-analyzer-api.ts
+++ /dev/null
@@ -1,123 +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
70export const onEnter = new lc.RequestType<lc.TextDocumentPositionParams, lc.TextEdit[], unknown>('experimental/onEnter');
71
72export interface RunnablesParams {
73 textDocument: lc.TextDocumentIdentifier;
74 position: Option<lc.Position>;
75}
76export interface Runnable {
77 range: lc.Range;
78 label: string;
79 bin: string;
80 args: Vec<string>;
81 extraArgs: Vec<string>;
82 env: FxHashMap<string, string>;
83 cwd: Option<string>;
84}
85export const runnables = request<RunnablesParams, Vec<Runnable>>("runnables");
86
87export type InlayHint = InlayHint.TypeHint | InlayHint.ParamHint | InlayHint.ChainingHint;
88
89export namespace InlayHint {
90 export const enum Kind {
91 TypeHint = "TypeHint",
92 ParamHint = "ParameterHint",
93 ChainingHint = "ChainingHint",
94 }
95 interface Common {
96 range: lc.Range;
97 label: string;
98 }
99 export type TypeHint = Common & { kind: Kind.TypeHint };
100 export type ParamHint = Common & { kind: Kind.ParamHint };
101 export type ChainingHint = Common & { kind: Kind.ChainingHint };
102}
103export interface InlayHintsParams {
104 textDocument: lc.TextDocumentIdentifier;
105}
106export const inlayHints = request<InlayHintsParams, Vec<InlayHint>>("inlayHints");
107
108
109export interface SsrParams {
110 query: string;
111 parseOnly: boolean;
112}
113export const ssr = new lc.RequestType<SsrParams, lc.WorkspaceEdit, unknown>('experimental/ssr');
114
115
116export const publishDecorations = notification<PublishDecorationsParams>("publishDecorations");
117
118
119export interface SourceChange {
120 label: string;
121 workspaceEdit: lc.WorkspaceEdit;
122 cursorPosition: Option<lc.TextDocumentPositionParams>;
123}