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

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

[elpa] externals/eglot 118f966 26/45: Fix a bug when response to definit


From: João Távora
Subject: [elpa] externals/eglot 118f966 26/45: Fix a bug when response to definitions request is a single location
Date: Thu, 22 Nov 2018 19:15:30 -0500 (EST)

branch: externals/eglot
commit 118f9668e45ea424d8090013392ace154538f1e4
Author: Michał Krzywkowski <address@hidden>
Commit: Michał Krzywkowski <address@hidden>

    Fix a bug when response to definitions request is a single location
    
    It's valid to return just a single Location for a definitions request.
    
    * eglot.el (xref-backend-definitions): Coerce response to a vector.
---
 eglot.el | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/eglot.el b/eglot.el
index 2b683f8..f11a14e 100644
--- a/eglot.el
+++ b/eglot.el
@@ -1381,17 +1381,20 @@ DUMMY is ignored."
 (cl-defmethod xref-backend-definitions ((_backend (eql eglot)) identifier)
   (let* ((rich-identifier
           (car (member identifier eglot--xref-known-symbols)))
-         (location-or-locations
+         (definitions
           (if rich-identifier
               (get-text-property 0 :locations rich-identifier)
             (jsonrpc-request (eglot--current-server-or-lose)
                              :textDocument/definition
                              (get-text-property
-                              0 :textDocumentPositionParams identifier)))))
+                              0 :textDocumentPositionParams identifier))))
+         (locations
+          (and definitions
+               (if (vectorp definitions) definitions (vector definitions)))))
     (eglot--sort-xrefs
      (mapcar (jsonrpc-lambda (&key uri range)
                (eglot--xref-make identifier uri (plist-get range :start)))
-             location-or-locations))))
+             locations))))
 
 (cl-defmethod xref-backend-references ((_backend (eql eglot)) identifier)
   (unless (eglot--server-capable :referencesProvider)



reply via email to

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