2 * This file mirrors `crates/rust-analyzer/src/lsp_ext.rs` declarations.
5 import * as lc from "vscode-languageclient";
7 export interface AnalyzerStatusParams {
8 textDocument?: lc.TextDocumentIdentifier;
10 export const analyzerStatus = new lc.RequestType<AnalyzerStatusParams, string, void>(
11 "rust-analyzer/analyzerStatus"
13 export const memoryUsage = new lc.RequestType0<string, void>("rust-analyzer/memoryUsage");
14 export const shuffleCrateGraph = new lc.RequestType0<null, void>("rust-analyzer/shuffleCrateGraph");
16 export interface ServerStatusParams {
17 health: "ok" | "warning" | "error";
21 export const serverStatus = new lc.NotificationType<ServerStatusParams>(
22 "experimental/serverStatus"
25 export const reloadWorkspace = new lc.RequestType0<null, void>("rust-analyzer/reloadWorkspace");
27 export const hover = new lc.RequestType<HoverParams, lc.Hover | null, void>("textDocument/hover");
29 export interface HoverParams extends lc.WorkDoneProgressParams {
30 textDocument: lc.TextDocumentIdentifier;
31 position: lc.Range | lc.Position;
34 export interface SyntaxTreeParams {
35 textDocument: lc.TextDocumentIdentifier;
36 range: lc.Range | null;
38 export const syntaxTree = new lc.RequestType<SyntaxTreeParams, string, void>(
39 "rust-analyzer/syntaxTree"
42 export const viewHir = new lc.RequestType<lc.TextDocumentPositionParams, string, void>(
43 "rust-analyzer/viewHir"
46 export const viewFileText = new lc.RequestType<lc.TextDocumentIdentifier, string, void>(
47 "rust-analyzer/viewFileText"
50 export interface ViewItemTreeParams {
51 textDocument: lc.TextDocumentIdentifier;
54 export const viewItemTree = new lc.RequestType<ViewItemTreeParams, string, void>(
55 "rust-analyzer/viewItemTree"
58 export interface ViewCrateGraphParams {
62 export const viewCrateGraph = new lc.RequestType<ViewCrateGraphParams, string, void>(
63 "rust-analyzer/viewCrateGraph"
66 export interface ExpandMacroParams {
67 textDocument: lc.TextDocumentIdentifier;
68 position: lc.Position;
70 export interface ExpandedMacro {
74 export const expandMacro = new lc.RequestType<ExpandMacroParams, ExpandedMacro | null, void>(
75 "rust-analyzer/expandMacro"
78 export const relatedTests = new lc.RequestType<lc.TextDocumentPositionParams, TestInfo[], void>(
79 "rust-analyzer/relatedTests"
82 export const cancelFlycheck = new lc.RequestType0<void, void>("rust-analyzer/cancelFlycheck");
84 // Experimental extensions
86 export interface SsrParams {
89 textDocument: lc.TextDocumentIdentifier;
90 position: lc.Position;
91 selections: readonly lc.Range[];
93 export const ssr = new lc.RequestType<SsrParams, lc.WorkspaceEdit, void>("experimental/ssr");
95 export interface MatchingBraceParams {
96 textDocument: lc.TextDocumentIdentifier;
97 positions: lc.Position[];
99 export const matchingBrace = new lc.RequestType<MatchingBraceParams, lc.Position[], void>(
100 "experimental/matchingBrace"
103 export const parentModule = new lc.RequestType<
104 lc.TextDocumentPositionParams,
105 lc.LocationLink[] | null,
107 >("experimental/parentModule");
109 export interface JoinLinesParams {
110 textDocument: lc.TextDocumentIdentifier;
113 export const joinLines = new lc.RequestType<JoinLinesParams, lc.TextEdit[], void>(
114 "experimental/joinLines"
117 export const onEnter = new lc.RequestType<lc.TextDocumentPositionParams, lc.TextEdit[], void>(
118 "experimental/onEnter"
121 export interface RunnablesParams {
122 textDocument: lc.TextDocumentIdentifier;
123 position: lc.Position | null;
126 export interface Runnable {
128 location?: lc.LocationLink;
131 workspaceRoot?: string;
133 cargoExtraArgs: string[];
134 executableArgs: string[];
135 expectTest?: boolean;
136 overrideCargo?: string;
139 export const runnables = new lc.RequestType<RunnablesParams, Runnable[], void>(
140 "experimental/runnables"
143 export interface TestInfo {
147 export interface CommandLink extends lc.Command {
149 * A tooltip for the command, when represented in the UI.
154 export interface CommandLinkGroup {
156 commands: CommandLink[];
159 export const openDocs = new lc.RequestType<lc.TextDocumentPositionParams, string | void, void>(
160 "experimental/externalDocs"
163 export const openCargoToml = new lc.RequestType<OpenCargoTomlParams, lc.Location, void>(
164 "experimental/openCargoToml"
167 export interface OpenCargoTomlParams {
168 textDocument: lc.TextDocumentIdentifier;
171 export const moveItem = new lc.RequestType<MoveItemParams, lc.TextEdit[], void>(
172 "experimental/moveItem"
175 export interface MoveItemParams {
176 textDocument: lc.TextDocumentIdentifier;
178 direction: Direction;
181 export const enum Direction {