]> git.eshelyaron.com Git - emacs.git/commit
Handle edits to same position in the correct order
authorJoão Távora <joaotavora@gmail.com>
Mon, 13 Aug 2018 00:45:40 +0000 (01:45 +0100)
committerJoão Távora <joaotavora@gmail.com>
Mon, 13 Aug 2018 00:45:40 +0000 (01:45 +0100)
commitb5e28c2ea6434d6216d927bac169bbdb089da969
treeae6f94e8b6566d63d3dd20bcbd6f77d48ca11bb4
parentcc2044834e2e15d76db630446af88ffe45fd50bf
Handle edits to same position in the correct order

In eglot--apply-text-edits, the markers returned by
eglot--lsp-position-to-point are of the "stay" type, i.e. have an
insertion-type of nil.  This causes multiple insertion edits to the
same location to happen in the reverse order in which they appear in
the LSP message, which is a violation of the spec and a bug.

There are more ways to solve this (see related discuttion in
https://github.com/joaotavora/eglot/pull/64), but the easiest way is
to revert the order in which the edits are processed.  This is because
the spec tells us that the order is only relevant in precisely this
"same position" case.  So if we reverse the order we fix this bug and
don't break anything else.

* eglot.el (eglot--apply-text-edits): Apply edits in reverse..

GitHub-reference: close https://github.com/joaotavora/eglot/issues/64
lisp/progmodes/eglot.el