1 //! FIXME: write short doc here
3 use lsp_types::{Location, Position, Range, TextDocumentIdentifier, Url};
4 use rustc_hash::FxHashMap;
5 use serde::{Deserialize, Serialize};
8 notification::*, request::*, ApplyWorkspaceEditParams, CodeActionParams, CodeLens,
9 CodeLensParams, CompletionParams, CompletionResponse, DidChangeConfigurationParams,
10 DidChangeWatchedFilesParams, DidChangeWatchedFilesRegistrationOptions,
11 DocumentOnTypeFormattingParams, DocumentSymbolParams, DocumentSymbolResponse,
12 FileSystemWatcher, Hover, InitializeResult, MessageType, PublishDiagnosticsParams,
13 ReferenceParams, Registration, RegistrationParams, SelectionRange, SelectionRangeParams,
14 ShowMessageParams, SignatureHelp, TextDocumentEdit, TextDocumentPositionParams, TextEdit,
15 WorkspaceEdit, WorkspaceSymbolParams,
18 pub enum AnalyzerStatus {}
20 impl Request for AnalyzerStatus {
23 const METHOD: &'static str = "rust-analyzer/analyzerStatus";
26 pub enum CollectGarbage {}
28 impl Request for CollectGarbage {
31 const METHOD: &'static str = "rust-analyzer/collectGarbage";
34 pub enum SyntaxTree {}
36 impl Request for SyntaxTree {
37 type Params = SyntaxTreeParams;
39 const METHOD: &'static str = "rust-analyzer/syntaxTree";
42 #[derive(Deserialize, Debug)]
43 #[serde(rename_all = "camelCase")]
44 pub struct SyntaxTreeParams {
45 pub text_document: TextDocumentIdentifier,
46 pub range: Option<Range>,
49 #[derive(Serialize, Debug)]
50 #[serde(rename_all = "camelCase")]
51 pub struct ExpandedMacro {
53 pub expansion: String,
56 pub enum ExpandMacro {}
58 impl Request for ExpandMacro {
59 type Params = ExpandMacroParams;
60 type Result = Option<ExpandedMacro>;
61 const METHOD: &'static str = "rust-analyzer/expandMacro";
64 #[derive(Deserialize, Debug)]
65 #[serde(rename_all = "camelCase")]
66 pub struct ExpandMacroParams {
67 pub text_document: TextDocumentIdentifier,
68 pub position: Option<Position>,
71 pub enum FindMatchingBrace {}
73 impl Request for FindMatchingBrace {
74 type Params = FindMatchingBraceParams;
75 type Result = Vec<Position>;
76 const METHOD: &'static str = "rust-analyzer/findMatchingBrace";
79 #[derive(Deserialize, Debug)]
80 #[serde(rename_all = "camelCase")]
81 pub struct FindMatchingBraceParams {
82 pub text_document: TextDocumentIdentifier,
83 pub offsets: Vec<Position>,
86 pub enum DecorationsRequest {}
88 impl Request for DecorationsRequest {
89 type Params = TextDocumentIdentifier;
90 type Result = Vec<Decoration>;
91 const METHOD: &'static str = "rust-analyzer/decorationsRequest";
94 pub enum PublishDecorations {}
96 impl Notification for PublishDecorations {
97 type Params = PublishDecorationsParams;
98 const METHOD: &'static str = "rust-analyzer/publishDecorations";
101 #[derive(Serialize, Debug)]
102 #[serde(rename_all = "camelCase")]
103 pub struct PublishDecorationsParams {
105 pub decorations: Vec<Decoration>,
108 #[derive(Serialize, Debug)]
109 #[serde(rename_all = "camelCase")]
110 pub struct Decoration {
112 pub tag: &'static str,
113 pub binding_hash: Option<String>,
116 pub enum ParentModule {}
118 impl Request for ParentModule {
119 type Params = TextDocumentPositionParams;
120 type Result = Vec<Location>;
121 const METHOD: &'static str = "rust-analyzer/parentModule";
124 pub enum JoinLines {}
126 impl Request for JoinLines {
127 type Params = JoinLinesParams;
128 type Result = SourceChange;
129 const METHOD: &'static str = "rust-analyzer/joinLines";
132 #[derive(Deserialize, Debug)]
133 #[serde(rename_all = "camelCase")]
134 pub struct JoinLinesParams {
135 pub text_document: TextDocumentIdentifier,
141 impl Request for OnEnter {
142 type Params = TextDocumentPositionParams;
143 type Result = Option<SourceChange>;
144 const METHOD: &'static str = "rust-analyzer/onEnter";
147 pub enum Runnables {}
149 impl Request for Runnables {
150 type Params = RunnablesParams;
151 type Result = Vec<Runnable>;
152 const METHOD: &'static str = "rust-analyzer/runnables";
155 #[derive(Serialize, Deserialize, Debug)]
156 #[serde(rename_all = "camelCase")]
157 pub struct RunnablesParams {
158 pub text_document: TextDocumentIdentifier,
159 pub position: Option<Position>,
162 #[derive(Serialize, Debug)]
163 #[serde(rename_all = "camelCase")]
164 pub struct Runnable {
168 pub args: Vec<String>,
169 pub env: FxHashMap<String, String>,
170 pub cwd: Option<String>,
173 #[derive(Serialize, Debug)]
174 #[serde(rename_all = "camelCase")]
175 pub struct SourceChange {
177 pub workspace_edit: WorkspaceEdit,
178 pub cursor_position: Option<TextDocumentPositionParams>,
181 pub enum InlayHints {}
183 impl Request for InlayHints {
184 type Params = InlayHintsParams;
185 type Result = Vec<InlayHint>;
186 const METHOD: &'static str = "rust-analyzer/inlayHints";
189 #[derive(Serialize, Deserialize, Debug)]
190 #[serde(rename_all = "camelCase")]
191 pub struct InlayHintsParams {
192 pub text_document: TextDocumentIdentifier,
195 #[derive(Debug, PartialEq, Eq, Deserialize, Serialize)]
200 #[derive(Debug, Deserialize, Serialize)]
201 pub struct InlayHint {