aboutsummaryrefslogtreecommitdiff
path: root/docs/dev/lsp-extensions.md
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2020-05-24 16:01:40 +0100
committerAleksey Kladov <[email protected]>2020-05-24 16:01:40 +0100
commitdec4ba80236e1be15f011fd6b2f7f0ecb151fd31 (patch)
treef218a60dfaa5acb9c2daac08114420531e413739 /docs/dev/lsp-extensions.md
parent934227361623b258d833be20e464e1509cb432ad (diff)
Document some rust-analyzer specific protocol extensions
Diffstat (limited to 'docs/dev/lsp-extensions.md')
-rw-r--r--docs/dev/lsp-extensions.md62
1 files changed, 62 insertions, 0 deletions
diff --git a/docs/dev/lsp-extensions.md b/docs/dev/lsp-extensions.md
index 9fa1c5fc2..55035cfae 100644
--- a/docs/dev/lsp-extensions.md
+++ b/docs/dev/lsp-extensions.md
@@ -217,3 +217,65 @@ Moreover, it would be cool if editors didn't need to implement even basic langua
217* Should we return a a nested brace structure, to allow paredit-like actions of jump *out* of the current brace pair? 217* Should we return a a nested brace structure, to allow paredit-like actions of jump *out* of the current brace pair?
218 This is how `SelectionRange` request works. 218 This is how `SelectionRange` request works.
219* Alternatively, should we perhaps flag certain `SelectionRange`s as being brace pairs? 219* 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
229Returns 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
239Frees 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
248interface SyntaxTeeParams {
249 textDocument: TextDocumentIdentifier,
250 range?: Range,
251}
252```
253
254**Response:** `string`
255
256Returns textual representation of a parse tree for the file/selected region.
257Primarily 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
266interface ExpandMacroParams {
267 textDocument: TextDocumentIdentifier,
268 position?: Position,
269}
270```
271
272**Response:**
273
274```typescript
275interface ExpandedMacro {
276 name: string,
277 expansion: string,
278}
279```
280
281Expands macro call at a given position.