[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
feature/eglot2emacs d2e842bbf5 098/120: Prefer documentchanges to change
From: |
João Távora |
Subject: |
feature/eglot2emacs d2e842bbf5 098/120: Prefer documentchanges to changes in server-initiated edits |
Date: |
Thu, 20 Oct 2022 07:17:06 -0400 (EDT) |
branch: feature/eglot2emacs
commit d2e842bbf51134bfd33943247faa88db99a36842
Author: Theodor Thornhill <theo@thornhill.no>
Commit: GitHub <noreply@github.com>
Prefer documentchanges to changes in server-initiated edits
Some servers return both.
PR: https://github.com/joaotavora/eglot/issues/949
* eglot.el (eglot--apply-workspace-edit): When both documentChanges
and changes are present, prefer the documentChanges. By doing that we
ensure that we don't double edit, rendering the document in an
unusable state.
GitHub-reference: fix https://github.com/joaotavora/eglot/issues/704
---
lisp/progmodes/eglot.el | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el
index 80f0b65470..e399b29f09 100644
--- a/lisp/progmodes/eglot.el
+++ b/lisp/progmodes/eglot.el
@@ -3016,8 +3016,12 @@ Returns a list as described in docstring of
`imenu--index-alist'."
textDocument
(list (eglot--uri-to-path uri) edits version)))
documentChanges)))
- (cl-loop for (uri edits) on changes by #'cddr
- do (push (list (eglot--uri-to-path uri) edits) prepared))
+ (unless (and changes documentChanges)
+ ;; We don't want double edits, and some servers send both
+ ;; changes and documentChanges. This unless ensures that we
+ ;; prefer documentChanges over changes.
+ (cl-loop for (uri edits) on changes by #'cddr
+ do (push (list (eglot--uri-to-path uri) edits) prepared)))
(if (or confirm
(cl-notevery #'find-buffer-visiting
(mapcar #'car prepared)))
- feature/eglot2emacs 0f44d338f1 025/120: Support optional diagnostic.tags, (continued)
- feature/eglot2emacs 0f44d338f1 025/120: Support optional diagnostic.tags, João Távora, 2022/10/20
- feature/eglot2emacs 0739cdcf20 031/120: Improve backwards-compatibility of eglot-mode-map, João Távora, 2022/10/20
- feature/eglot2emacs 9710754080 042/120: Add support for optional completionitem.tags, João Távora, 2022/10/20
- feature/eglot2emacs c2d97d22aa 056/120: Implement on-type-formatting support, João Távora, 2022/10/20
- feature/eglot2emacs 1d9542cbe8 059/120: Protect against empty firsttriggercharacter strings, João Távora, 2022/10/20
- feature/eglot2emacs a63916f928 062/120: Tweak eglot mode-line menus, João Távora, 2022/10/20
- feature/eglot2emacs 4beab004d9 070/120: Ensure exit-function of eglot-c-at-point runs on exact match, João Távora, 2022/10/20
- feature/eglot2emacs 29f2ec2471 071/120: Consider diagnostic.code when generating flymake diagnostics, João Távora, 2022/10/20
- feature/eglot2emacs cc5d1a5a72 091/120: Always default eglot-strict-mode to nil, João Távora, 2022/10/20
- feature/eglot2emacs e74e199912 093/120: Add out-of-box support for perl lsp server, João Távora, 2022/10/20
- feature/eglot2emacs d2e842bbf5 098/120: Prefer documentchanges to changes in server-initiated edits,
João Távora <=
- feature/eglot2emacs e5f77f8ca5 100/120: Rework readme.md about workspace configuration again, João Távora, 2022/10/20
- feature/eglot2emacs ec7d63cbe7 105/120: Don't return hash tables from e-w-configuration-plist, João Távora, 2022/10/20
- feature/eglot2emacs 1780b93d66 111/120: Make clojure-lsp handle more major modes at once, João Távora, 2022/10/20
- feature/eglot2emacs 0848387fa2 115/120: Fix docstring of eglot-list-connections-mode, João Távora, 2022/10/20
- feature/eglot2emacs cf0ba0197a 007/120: Add support for the mint language server, João Távora, 2022/10/20
- feature/eglot2emacs ed9800041e 029/120: * eglot.el (eglot--connect): display seconds on timeout., João Távora, 2022/10/20
- feature/eglot2emacs ef0da9414e 060/120: Make eglot--plist-keys a simple (non-map.el) helper again, João Távora, 2022/10/20
- feature/eglot2emacs 5e9d78f9cf 068/120: Ensure non-null :settings param in didchangeconfiguration notif, João Távora, 2022/10/20
- feature/eglot2emacs 73f4555a0d 067/120: Add out-of-box support for futhark lsp server, João Távora, 2022/10/20
- feature/eglot2emacs 50ff73d753 073/120: Use format string instead of concat, João Távora, 2022/10/20