emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/elpa e3ce64a 54/71: Fix #510: use a hash-table for stor


From: João Távora
Subject: [elpa] externals/elpa e3ce64a 54/71: Fix #510: use a hash-table for storing resolved completions
Date: Wed, 16 Dec 2020 11:42:25 -0500 (EST)

branch: externals/elpa
commit e3ce64adc09922a87936617484e48cbecc5db729
Author: João Távora <joaotavora@gmail.com>
Commit: João Távora <joaotavora@gmail.com>

    Fix #510: use a hash-table for storing resolved completions
    
    * eglot.el (eglot-completion-at-point): use a hash-table for
    storing resolved completions.
---
 eglot.el | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

diff --git a/eglot.el b/eglot.el
index 865ca03..c0f3143 100644
--- a/eglot.el
+++ b/eglot.el
@@ -2103,20 +2103,20 @@ is not active."
                              (put-text-property 0 1 'eglot--lsp-item item 
proxy))
                            proxy))
                        items)))))
-           resolved
+           (resolved (make-hash-table))
            (resolve-maybe
             ;; Maybe completion/resolve JSON object `lsp-comp' into
             ;; another JSON object, if at all possible.  Otherwise,
             ;; just return lsp-comp.
             (lambda (lsp-comp)
-              (cond (resolved resolved)
-                    ((and (eglot--server-capable :completionProvider
-                                                 :resolveProvider)
-                          (plist-get lsp-comp :data))
-                     (setq resolved
-                           (jsonrpc-request server :completionItem/resolve
-                                            lsp-comp :cancel-on-input t)))
-                    (t lsp-comp))))
+              (or (gethash lsp-comp resolved)
+                  (setf (gethash lsp-comp resolved)
+                        (if (and (eglot--server-capable :completionProvider
+                                                        :resolveProvider)
+                                 (plist-get lsp-comp :data))
+                            (jsonrpc-request server :completionItem/resolve
+                                             lsp-comp :cancel-on-input t)
+                          lsp-comp)))))
            (bounds (bounds-of-thing-at-point 'symbol)))
       (list
        (or (car bounds) (point))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]