aboutsummaryrefslogtreecommitdiff
path: root/docs/dev/lsp-extensions.md
diff options
context:
space:
mode:
Diffstat (limited to 'docs/dev/lsp-extensions.md')
-rw-r--r--docs/dev/lsp-extensions.md63
1 files changed, 63 insertions, 0 deletions
diff --git a/docs/dev/lsp-extensions.md b/docs/dev/lsp-extensions.md
index 209f470eb..c898f3e93 100644
--- a/docs/dev/lsp-extensions.md
+++ b/docs/dev/lsp-extensions.md
@@ -362,3 +362,66 @@ interface ExpandedMacro {
362``` 362```
363 363
364Expands macro call at a given position. 364Expands macro call at a given position.
365
366## Inlay Hints
367
368**Method:** `rust-analyzer/inlayHints`
369
370This request is send from client to server to render "inlay hints" -- virtual text inserted into editor to show things like inferred types.
371Generally, the client should re-query inlay hints after every modification.
372Note that we plan to move this request to `experimental/inlayHints`, as it is not really Rust-specific, but the current API is not necessary the right one.
373Upstream issue: https://github.com/microsoft/language-server-protocol/issues/956
374
375**Request:**
376
377```typescript
378interface InlayHintsParams {
379 textDocument: TextDocumentIdentifier,
380}
381```
382
383**Response:** `InlayHint[]`
384
385```typescript
386interface InlayHint {
387 kind: "TypeHint" | "ParameterHint" | "ChainingHints",
388 range: Range,
389 label: string,
390}
391```
392
393## Runnables
394
395**Method:** `rust-analyzer/runnables`
396
397This request is send from client to server to get the list of things that can be run (tests, binaries, `cargo check -p`).
398Note that we plan to move this request to `experimental/runnables`, as it is not really Rust-specific, but the current API is not necessary the right one.
399Upstream issue: https://github.com/microsoft/language-server-protocol/issues/944
400
401**Request:**
402
403```typescript
404interface RunnablesParams {
405 textDocument: TextDocumentIdentifier;
406 /// If null, compute runnables for the whole file.
407 position?: Position;
408}
409```
410
411**Response:** `Runnable[]`
412
413```typescript
414interface Runnable {
415 /// The range this runnable is applicable for.
416 range: lc.Range;
417 /// The label to show in the UI.
418 label: string;
419 /// The following fields describe a process to spawn.
420 bin: string;
421 args: string[];
422 /// Args for cargo after `--`.
423 extraArgs: string[];
424 env: { [key: string]: string };
425 cwd: string | null;
426}
427```