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>("rust-analyzer/analyzerStatus");
11 export const memoryUsage = new lc.RequestType0<string, void>("rust-analyzer/memoryUsage");
13 export interface ServerStatusParams {
14 health: "ok" | "warning" | "error";
18 export const serverStatus = new lc.NotificationType<ServerStatusParams>("experimental/serverStatus");
20 export const reloadWorkspace = new lc.RequestType0<null, void>("rust-analyzer/reloadWorkspace");
22 export const hover = new lc.RequestType<HoverParams, lc.Hover | null, void>("textDocument/hover");
24 export interface HoverParams extends lc.WorkDoneProgressParams {
25 textDocument: lc.TextDocumentIdentifier;
26 position: lc.Range | lc.Position;
29 export interface SyntaxTreeParams {
30 textDocument: lc.TextDocumentIdentifier;
31 range: lc.Range | null;
33 export const syntaxTree = new lc.RequestType<SyntaxTreeParams, string, void>("rust-analyzer/syntaxTree");
35 export const viewHir = new lc.RequestType<lc.TextDocumentPositionParams, string, void>("rust-analyzer/viewHir");
37 export interface ViewItemTreeParams {
38 textDocument: lc.TextDocumentIdentifier;
41 export const viewItemTree = new lc.RequestType<ViewItemTreeParams, string, void>("rust-analyzer/viewItemTree");
43 export interface ViewCrateGraphParams {
47 export const viewCrateGraph = new lc.RequestType<ViewCrateGraphParams, string, void>("rust-analyzer/viewCrateGraph");
49 export interface ExpandMacroParams {
50 textDocument: lc.TextDocumentIdentifier;
51 position: lc.Position;
53 export interface ExpandedMacro {
57 export const expandMacro = new lc.RequestType<ExpandMacroParams, ExpandedMacro | null, void>("rust-analyzer/expandMacro");
59 export interface MatchingBraceParams {
60 textDocument: lc.TextDocumentIdentifier;
61 positions: lc.Position[];
63 export const matchingBrace = new lc.RequestType<MatchingBraceParams, lc.Position[], void>("experimental/matchingBrace");
65 export const parentModule = new lc.RequestType<lc.TextDocumentPositionParams, lc.LocationLink[] | null, void>("experimental/parentModule");
67 export interface JoinLinesParams {
68 textDocument: lc.TextDocumentIdentifier;
71 export const joinLines = new lc.RequestType<JoinLinesParams, lc.TextEdit[], void>("experimental/joinLines");
73 export const onEnter = new lc.RequestType<lc.TextDocumentPositionParams, lc.TextEdit[], void>("experimental/onEnter");
75 export interface RunnablesParams {
76 textDocument: lc.TextDocumentIdentifier;
77 position: lc.Position | null;
80 export interface Runnable {
82 location?: lc.LocationLink;
85 workspaceRoot?: string;
87 cargoExtraArgs: string[];
88 executableArgs: string[];
90 overrideCargo?: string;
93 export const runnables = new lc.RequestType<RunnablesParams, Runnable[], void>("experimental/runnables");
95 export interface TestInfo {
99 export const relatedTests = new lc.RequestType<lc.TextDocumentPositionParams, TestInfo[], void>("rust-analyzer/relatedTests");
101 export type InlayHint = InlayHint.TypeHint | InlayHint.ParamHint | InlayHint.ChainingHint;
103 export namespace InlayHint {
104 export const enum Kind {
105 TypeHint = "TypeHint",
106 ParamHint = "ParameterHint",
107 ChainingHint = "ChainingHint",
113 export type TypeHint = Common & { kind: Kind.TypeHint };
114 export type ParamHint = Common & { kind: Kind.ParamHint };
115 export type ChainingHint = Common & { kind: Kind.ChainingHint };
117 export interface InlayHintsParams {
118 textDocument: lc.TextDocumentIdentifier;
120 export const inlayHints = new lc.RequestType<InlayHintsParams, InlayHint[], void>("rust-analyzer/inlayHints");
122 export interface SsrParams {
125 textDocument: lc.TextDocumentIdentifier;
126 position: lc.Position;
127 selections: lc.Range[];
129 export const ssr = new lc.RequestType<SsrParams, lc.WorkspaceEdit, void>('experimental/ssr');
131 export interface CommandLink extends lc.Command {
133 * A tooltip for the command, when represented in the UI.
138 export interface CommandLinkGroup {
140 commands: CommandLink[];
143 export const openDocs = new lc.RequestType<lc.TextDocumentPositionParams, string | void, void>('experimental/externalDocs');
145 export const openCargoToml = new lc.RequestType<OpenCargoTomlParams, lc.Location, void>("experimental/openCargoToml");
147 export interface OpenCargoTomlParams {
148 textDocument: lc.TextDocumentIdentifier;
151 export const moveItem = new lc.RequestType<MoveItemParams, lc.TextEdit[], void>("experimental/moveItem");
153 export interface MoveItemParams {
154 textDocument: lc.TextDocumentIdentifier;
156 direction: Direction;
159 export const enum Direction {