[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] 1.2 63c2bbc 092/101: Add support for TextEdits in completion
From: |
Christian Johansson |
Subject: |
[elpa] 1.2 63c2bbc 092/101: Add support for TextEdits in completion |
Date: |
Thu, 29 Apr 2021 15:09:07 -0400 (EDT) |
tag: 1.2
commit 63c2bbccb8761b99ed09676d52f6ecd6dae49832
Author: MichaĆ Krzywkowski <k.michal@zoho.com>
Commit: mkcms <k.michal@zoho.com>
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] 1.2 746505f 072/101: Require subr-x at compile time (#139), (continued)
- [elpa] 1.2 746505f 072/101: Require subr-x at compile time (#139), Christian Johansson, 2021/04/29
- [elpa] 1.2 eec30e3 070/101: Fix misspelling of "outstanding" (#74), Christian Johansson, 2021/04/29
- [elpa] 1.2 ff62057 071/101: Fix #138: accept deprecated field in SymbolInformation, Christian Johansson, 2021/04/29
- [elpa] 1.2 f317a7d 069/101: * eglot-tests.el: Disable eclipse connection tests., Christian Johansson, 2021/04/29
- [elpa] 1.2 ff92d67 073/101: Remove duplicates from imenu, Christian Johansson, 2021/04/29
- [elpa] 1.2 660d9e3 078/101: Slightly robustify test engine, Christian Johansson, 2021/04/29
- [elpa] 1.2 da4cd2a 083/101: Make imenu hierarchical, Christian Johansson, 2021/04/29
- [elpa] 1.2 912d10f 088/101: Fix a bug introduced by previous bugfix, Christian Johansson, 2021/04/29
- [elpa] 1.2 8529b55 089/101: Fix #124: add ability to move to LSP-precise columns, Christian Johansson, 2021/04/29
- [elpa] 1.2 90b3bfd 090/101: Fix #148: complex completions work when chosen from *completions*, Christian Johansson, 2021/04/29
- [elpa] 1.2 63c2bbc 092/101: Add support for TextEdits in completion,
Christian Johansson <=
- [elpa] 1.2 d52738f 095/101: Treat tab characters as 1 column wide in position conversion functions, Christian Johansson, 2021/04/29
- [elpa] 1.2 7e9cc05 098/101: Fix #154: fix potential security issue fontifying LSP doc, Christian Johansson, 2021/04/29
- [elpa] 1.2 2bbf06e 097/101: Add support for R's languageserver (#161), Christian Johansson, 2021/04/29
- [elpa] 1.2 c667d79 093/101: Fix #125: add ability to report LSP-compliant columns, Christian Johansson, 2021/04/29
- [elpa] 1.2 a39a446 020/101: Close #61: Snappier completions that don't hinder typing, Christian Johansson, 2021/04/29
- [elpa] 1.2 2e21c12 084/101: * eglot.el (eglot-client-capabilities): Mention supported SymbolKinds., Christian Johansson, 2021/04/29
- [elpa] 1.2 9cee9eb 086/101: Move constants to top instead of forward-declaring, Christian Johansson, 2021/04/29
- [elpa] 1.2 fc9bbf7 096/101: Fix #160: Properly delete inserted text after completion, Christian Johansson, 2021/04/29
- [elpa] 1.2 b573d42 003/101: Close #44: Don't turn on flymake-mode any more than is needed, Christian Johansson, 2021/04/29
- [elpa] 1.2 13d8da4 039/101: Fix textDocument/hover responses where MarkedString is a plist (#72), Christian Johansson, 2021/04/29