]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix eglot-capabilities when querying for multiple features
authorJoão Távora <joaotavora@gmail.com>
Fri, 17 Aug 2018 22:23:31 +0000 (23:23 +0100)
committerJoão Távora <joaotavora@gmail.com>
Fri, 17 Aug 2018 22:23:31 +0000 (23:23 +0100)
* eglot-tests.el (eglot-capabilities): New test.

* eglot.el (eglot--server-capable): Fix problems with queries for
multiple capabilities.

GitHub-reference: per https://github.com/joaotavora/eglot/issues/74

lisp/progmodes/eglot.el

index 88c6b45141aad6c83af350c5fc73eb875c62fbd4..63fbce205d5fccf2e51db95d9df59f9be7575265 100644 (file)
@@ -728,12 +728,12 @@ under cursor."
                    feats)
     (cl-loop for caps = (eglot--capabilities (eglot--current-server-or-lose))
              then (cadr probe)
-             for feat in feats
+             for (feat . more) on feats
              for probe = (plist-member caps feat)
              if (not probe) do (cl-return nil)
              if (eq (cadr probe) :json-false) do (cl-return nil)
-             if (not (listp (cadr probe))) do (cl-return (cadr probe))
-             finally (cl-return (or probe t)))))
+             if (not (listp (cadr probe))) do (cl-return (if more nil (cadr probe)))
+             finally (cl-return (or (cadr probe) t)))))
 
 (defun eglot--range-region (range &optional markers)
   "Return region (BEG . END) that represents LSP RANGE.