[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/eglot fdb1941 36/45: Add support for TextEdits in compl
From: |
João Távora |
Subject: |
[elpa] externals/eglot fdb1941 36/45: Add support for TextEdits in completion |
Date: |
Thu, 22 Nov 2018 19:15:32 -0500 (EST) |
branch: externals/eglot
commit fdb1941fb01d590ad67092fb83fdbbd474e3d6f1
Author: Michał Krzywkowski <address@hidden>
Commit: mkcms <address@hidden>
Add support for TextEdits in completion
* eglot.el (eglot-completion-at-point): Apply the CompletionItem's
:textEdit and :additionalTextEdits when they're present.
---
eglot.el | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/eglot.el b/eglot.el
index 24f8c97..d4a8b6f 100644
--- a/eglot.el
+++ b/eglot.el
@@ -1584,12 +1584,23 @@ is not active."
(cl-find comp strings :test #'string=))))
(cl-destructuring-bind (&key insertTextFormat
insertText
+ textEdit
+ additionalTextEdits
&allow-other-keys)
(text-properties-at 0 comp)
- (when-let ((fn (and (eql insertTextFormat 2)
- (eglot--snippet-expansion-fn))))
- (delete-region (- (point) (length comp)) (point))
- (funcall fn insertText))
+ (let ((fn (and (eql insertTextFormat 2)
+ (eglot--snippet-expansion-fn))))
+ (when (or fn textEdit)
+ ;; Undo the completion
+ (delete-region (- (point) (length comp)) (point)))
+ (cond (textEdit
+ (cl-destructuring-bind (&key range newText) textEdit
+ (pcase-let ((`(,beg . ,end) (eglot--range-region
range)))
+ (delete-region beg end)
+ (goto-char beg)
+ (funcall (or fn #'insert) newText)))
+ (eglot--apply-text-edits additionalTextEdits))
+ (fn (funcall fn insertText))))
(eglot--signal-textDocument/didChange)
(eglot-eldoc-function))))))))
- [elpa] externals/eglot d6e0ba3 31/45: * eglot-tests.el (eclipse-connect): Increase connect timeout to 20., (continued)
- [elpa] externals/eglot d6e0ba3 31/45: * eglot-tests.el (eclipse-connect): Increase connect timeout to 20., João Távora, 2018/11/22
- [elpa] externals/eglot 31bfe21 24/45: Add support for code action literals, João Távora, 2018/11/22
- [elpa] externals/eglot 11cd074 29/45: Support ocaml-language-server out of the box (#149), João Távora, 2018/11/22
- [elpa] externals/eglot 7b4ed97 33/45: Fix #124: add ability to move to LSP-precise columns, João Távora, 2018/11/22
- [elpa] externals/eglot f2ccb77 25/45: Simplify eglot-code-action. Fix compilation warning, João Távora, 2018/11/22
- [elpa] externals/eglot 2a410e9 30/45: Move constants to top instead of forward-declaring, João Távora, 2018/11/22
- [elpa] externals/eglot f74a80f 27/45: Make imenu hierarchical, João Távora, 2018/11/22
- [elpa] externals/eglot 118f966 26/45: Fix a bug when response to definitions request is a single location, João Távora, 2018/11/22
- [elpa] externals/eglot 3c180c0 19/45: Rework test macros for hopefully more stable testing, João Távora, 2018/11/22
- [elpa] externals/eglot b31ba80 35/45: Tweak solution to #125 with a hint from Fangrui Song, João Távora, 2018/11/22
- [elpa] externals/eglot fdb1941 36/45: Add support for TextEdits in completion,
João Távora <=
- [elpa] externals/eglot d66f2eb 39/45: Treat tab characters as 1 column wide in position conversion functions, João Távora, 2018/11/22
- [elpa] externals/eglot b731db5 41/45: Add support for R's languageserver (#161), João Távora, 2018/11/22
- [elpa] externals/eglot de1728c 44/45: * eglot.el (eglot-completion-at-point): Less chatter., João Távora, 2018/11/22
- [elpa] externals/eglot fc03d7c 40/45: Fix #160: Properly delete inserted text after completion, João Távora, 2018/11/22
- [elpa] externals/eglot 604c1b0 38/45: Per #144: Format documentation of signature parameters, João Távora, 2018/11/22
- [elpa] externals/eglot 894fe5a 42/45: Fix #154: fix potential security issue fontifying LSP doc, João Távora, 2018/11/22
- [elpa] externals/eglot b9e9cf3 34/45: Fix #148: complex completions work when chosen from *completions*, João Távora, 2018/11/22
- [elpa] externals/eglot 0a18dca 37/45: Fix #125: add ability to report LSP-compliant columns, João Távora, 2018/11/22
- [elpa] externals/eglot f291816 45/45: * eglot.el (Version): Bump to 1.2, João Távora, 2018/11/22
- [elpa] externals/eglot ee7f9c6 43/45: Fix #167: correctly insert TextEdit-less snippets, João Távora, 2018/11/22