]> git.eshelyaron.com Git - emacs.git/commitdiff
Eglot: guard against empty 'textDocument/documentSymbol' response
authorJoão Távora <joaotavora@gmail.com>
Mon, 17 Apr 2023 00:37:19 +0000 (01:37 +0100)
committerJoão Távora <joaotavora@gmail.com>
Mon, 17 Apr 2023 00:37:19 +0000 (01:37 +0100)
* lisp/progmodes/eglot.el (eglot-imenu): Protect against missing response.

lisp/progmodes/eglot.el

index 24f2fda5ae5577afb75fddfd986de230c4aee1b3..7ad33fa37868e9c4397751438803b747742dc2e6 100644 (file)
@@ -3295,10 +3295,11 @@ Returns a list as described in docstring of `imenu--index-alist'."
                               `(:textDocument
                                 ,(eglot--TextDocumentIdentifier))
                               :cancel-on-input non-essential))
-         (head (and res (elt res 0))))
-    (eglot--dcase head
-      (((SymbolInformation)) (eglot--imenu-SymbolInformation res))
-      (((DocumentSymbol)) (eglot--imenu-DocumentSymbol res)))))
+         (head (and (cl-plusp (length res)) (elt res 0))))
+    (when head
+      (eglot--dcase head
+        (((SymbolInformation)) (eglot--imenu-SymbolInformation res))
+        (((DocumentSymbol)) (eglot--imenu-DocumentSymbol res))))))
 
 (cl-defun eglot--apply-text-edits (edits &optional version)
   "Apply EDITS for current buffer if at VERSION, or if it's nil."