diff options
| author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2020-05-19 18:29:46 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-05-19 18:29:46 +0000 |
| commit | 1bc1f28bc58b2dbcf8f8f548c277e2c90e3075cd (patch) | |
| tree | 7d059b65919b1b64196cc3fc6830eeb99f2f9af0 /docs/dev | |
| parent | 131849f2abd94dc8143f0c5d65e022136f29561a (diff) | |
| parent | 3e9bf7ebabdaa8e9a2972af2dd8e8089a3a0341e (diff) | |
| download | rust-1bc1f28bc58b2dbcf8f8f548c277e2c90e3075cd.tar.gz rust-1bc1f28bc58b2dbcf8f8f548c277e2c90e3075cd.zip | |
Merge #4494
4494: Support snippet text edit r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
Diffstat (limited to 'docs/dev')
| -rw-r--r-- | docs/dev/lsp-extensions.md | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/docs/dev/lsp-extensions.md b/docs/dev/lsp-extensions.md new file mode 100644 index 00000000000..d2ec6c0215b --- /dev/null +++ b/docs/dev/lsp-extensions.md @@ -0,0 +1,34 @@ +# LSP Extensions + +This document describes LSP extensions used by rust-analyzer. +It's a best effort document, when in doubt, consult the source (and send a PR with clarification ;-) ). +We aim to upstream all non Rust-specific extensions to the protocol, but this is not a top priority. +All capabilities are enabled via `experimental` field of `ClientCapabilities`. + +## `SnippetTextEdit` + +**Capability** + +```typescript +{ + "snippetTextEdit": boolean +} +``` + +If this capability is set, `WorkspaceEdit`s returned from `codeAction` requests might contain `SnippetTextEdit`s instead of usual `TextEdit`s: + +```typescript +interface SnippetTextEdit extends TextEdit { + insertTextFormat?: InsertTextFormat; +} +``` + +```typescript +export interface TextDocumentEdit { + textDocument: VersionedTextDocumentIdentifier; + edits: (TextEdit | SnippetTextEdit)[]; +} +``` + +When applying such code action, the editor should insert snippet, with tab stops and placeholder. +At the moment, rust-analyzer guarantees that only a single edit will have `InsertTextFormat.Snippet`. |
