This fixes a problem pointed out by Yuwei Tian <ibluefocus@gmail.com>.
* eglot.el (eglot-completion-at-point): Fix getting :sortText content
of the completion item.
GitHub-reference: closes https://github.com/joaotavora/eglot/issues/509
;; Commit logs for this function help understand what's going on.
(when-let (completion-capability (eglot--server-capable :completionProvider))
(let* ((server (eglot--current-server-or-lose))
- (sort-completions (lambda (completions)
- (sort completions
- (lambda (a b)
- (string-lessp
- (or (get-text-property 0 :sortText a) "")
- (or (get-text-property 0 :sortText b) ""))))))
+ (sort-completions
+ (lambda (completions)
+ (cl-sort completions
+ #'string-lessp
+ :key (lambda (c)
+ (or (plist-get
+ (get-text-property 0 'eglot--lsp-item c)
+ :sortText)
+ "")))))
(metadata `(metadata . ((display-sort-function . ,sort-completions))))
resp items (cached-proxies :none)
(proxies