Fixes an issue with the latest RLS, where the server returns a plist
instead of a plain string as documentation for completion candidates,
which broke the `annotation-function`. This change was introduced by
https://github.com/rust-lang-nursery/rls/commit/
206a9fb41e837333d0e67187a6a9fe24868b77a4
Copyright-paperwork-exempt: yes
* eglot.el (eglot-completion-at-point): Use eglot--format-markup
(items (if (vectorp resp) resp (plist-get resp :items))))
(mapcar
(jsonrpc-lambda (&rest all &key label insertText &allow-other-keys)
- (let ((insert (or insertText label)))
- (add-text-properties 0 1 all insert)
- (put-text-property 0 1 'eglot--lsp-completion all insert)
- insert))
+ (let ((insert (or insertText label)))
+ (add-text-properties 0 1 all insert)
+ (put-text-property 0 1 'eglot--lsp-completion all insert)
+ insert))
items))))
:annotation-function
(lambda (obj)
(text-properties-at 0 obj)
(let ((annotation
(or (and documentation
- (replace-regexp-in-string "\n.*" "" documentation))
+ (replace-regexp-in-string
+ "\n.*" "" (eglot--format-markup documentation)))
detail
(cdr (assoc kind eglot--kind-names)))))
(when annotation