Skip to content

Commit dec4ba8

Browse files
committed
Document some rust-analyzer specific protocol extensions
1 parent 9342273 commit dec4ba8

File tree

2 files changed

+70
-7
lines changed

2 files changed

+70
-7
lines changed

crates/rust-analyzer/src/lsp_ext.rs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,6 @@ pub struct SyntaxTreeParams {
3838
pub range: Option<Range>,
3939
}
4040

41-
#[derive(Deserialize, Serialize, Debug)]
42-
#[serde(rename_all = "camelCase")]
43-
pub struct ExpandedMacro {
44-
pub name: String,
45-
pub expansion: String,
46-
}
47-
4841
pub enum ExpandMacro {}
4942

5043
impl Request for ExpandMacro {
@@ -60,6 +53,14 @@ pub struct ExpandMacroParams {
6053
pub position: Option<Position>,
6154
}
6255

56+
#[derive(Deserialize, Serialize, Debug)]
57+
#[serde(rename_all = "camelCase")]
58+
pub struct ExpandedMacro {
59+
pub name: String,
60+
pub expansion: String,
61+
}
62+
63+
6364
pub enum MatchingBrace {}
6465

6566
impl Request for MatchingBrace {

docs/dev/lsp-extensions.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,3 +217,65 @@ Moreover, it would be cool if editors didn't need to implement even basic langua
217217
* Should we return a a nested brace structure, to allow paredit-like actions of jump *out* of the current brace pair?
218218
This is how `SelectionRange` request works.
219219
* Alternatively, should we perhaps flag certain `SelectionRange`s as being brace pairs?
220+
221+
## Analyzer Status
222+
223+
**Method:** `rust-analyzer/analyzerStatus`
224+
225+
**Request:** `null`
226+
227+
**Response:** `string`
228+
229+
Returns internal status message, mostly for debugging purposes.
230+
231+
## Collect Garbage
232+
233+
**Method:** `rust-analyzer/collectGarbage`
234+
235+
**Request:** `null`
236+
237+
**Response:** `null`
238+
239+
Frees some caches. For internal use, and is mostly broken at the moment.
240+
241+
## Syntax Tree
242+
243+
**Method:** `rust-analyzer/syntaxTree`
244+
245+
**Request:**
246+
247+
```typescript
248+
interface SyntaxTeeParams {
249+
textDocument: TextDocumentIdentifier,
250+
range?: Range,
251+
}
252+
```
253+
254+
**Response:** `string`
255+
256+
Returns textual representation of a parse tree for the file/selected region.
257+
Primarily for debugging, but very useful for all people working on rust-analyzer itself.
258+
259+
## Expand Macro
260+
261+
**Method:** `rust-analyzer/expandMacro`
262+
263+
**Request:**
264+
265+
```typescript
266+
interface ExpandMacroParams {
267+
textDocument: TextDocumentIdentifier,
268+
position?: Position,
269+
}
270+
```
271+
272+
**Response:**
273+
274+
```typescript
275+
interface ExpandedMacro {
276+
name: string,
277+
expansion: string,
278+
}
279+
```
280+
281+
Expands macro call at a given position.

0 commit comments

Comments
 (0)