Eglot: fix bug introduced when "fixing" middle-of-symbol completions
Culprit:
commit a6ef458e38
Author: João Távora <joaotavora@gmail.com>
Date: Tue Dec 26 00:31:29 2023 +0000
Eglot: partial fix for middle-of-symbol completions
The decision to restore the buffer state to when the last LSP
completion set was invoked is rock-solid (because that the state
those completions' edits apply to).
However, when caching the LSP completions across multiple
eglot-completion-at-point calls, we must make sure to also restore the
values of the local values, such as 'bounds-string'. This allows us
to do that restoration.
* lisp/progmodes/eglot.el (eglot-completion-at-point): Also
restore bounds-string from capf session cache.
Github-reference: https://github.com/joaotavora/eglot/issues/1349
This commit is contained in:
parent
b5d36efa57
commit
5d88c98e7c
1 changed files with 4 additions and 2 deletions
|
@ -3125,7 +3125,8 @@ for which LSP on-type-formatting should be requested."
|
|||
items)))
|
||||
;; (trace-values "Requested" (length proxies) cachep bounds)
|
||||
(setq eglot--capf-session
|
||||
(if cachep (list bounds retval resolved orig-pos) :none))
|
||||
(if cachep (list bounds retval resolved orig-pos
|
||||
bounds-string) :none))
|
||||
(setq local-cache retval)))))
|
||||
(resolve-maybe
|
||||
;; Maybe completion/resolve JSON object `lsp-comp' into
|
||||
|
@ -3145,7 +3146,8 @@ for which LSP on-type-formatting should be requested."
|
|||
(>= (cdr bounds) (cdr (nth 0 eglot--capf-session))))
|
||||
(setq local-cache (nth 1 eglot--capf-session)
|
||||
resolved (nth 2 eglot--capf-session)
|
||||
orig-pos (nth 3 eglot--capf-session))
|
||||
orig-pos (nth 3 eglot--capf-session)
|
||||
bounds-string (nth 4 eglot--capf-session))
|
||||
;; (trace-values "Recalling cache" (length local-cache) bounds orig-pos)
|
||||
)
|
||||
(list
|
||||
|
|
Loading…
Add table
Reference in a new issue