summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoão Távora <joaotavora@gmail.com>2023-04-07 23:00:44 +0100
committerJoão Távora <joaotavora@gmail.com>2023-04-07 23:00:44 +0100
commit9848ae17161828190cc0ba31e89ae54a2f08a2ef (patch)
tree757a1b94a4dc1a0f2619eedbd6fe717ce25dd010
parentcc288a0e331d09e3e0aebcb83769a513ecad236f (diff)
downloademacs-9848ae17161828190cc0ba31e89ae54a2f08a2ef.tar.gz
Eglot: fix problems after changes to eglot-imenu (bug#62718)
* lisp/progmodes/eglot.el (eglot--imenu-SymbolInformation) (eglot--imenu-DocumentSymbol): Fix.
-rw-r--r--lisp/progmodes/eglot.el12
1 files changed, 7 insertions, 5 deletions
diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el
index 99b3925f05f..6134ab9150c 100644
--- a/lisp/progmodes/eglot.el
+++ b/lisp/progmodes/eglot.el
@@ -3247,7 +3247,8 @@ for which LSP on-type-formatting should be requested."
(let ((elems (mapcar
(eglot--lambda ((SymbolInformation) kind name location)
(let ((reg (eglot--range-region
- (plist-get location :range))))
+ (plist-get location :range)))
+ (kind (alist-get kind eglot--symbol-kind-names)))
(cons (propertize name
'breadcrumb-region reg
'breadcrumb-kind kind)
@@ -3262,13 +3263,14 @@ for which LSP on-type-formatting should be requested."
"Compute `imenu--index-alist' for RES vector of DocumentSymbol."
(cl-labels ((dfs (&key name children range kind &allow-other-keys)
(let* ((reg (eglot--range-region range))
+ (kind (alist-get kind eglot--symbol-kind-names))
(name (propertize name
'breadcrumb-region reg
'breadcrumb-kind kind)))
- (if children
- (cons name
- (mapcar (lambda (c) (apply #'dfs c)) children))
- (cons name (car reg))))))
+ (if (seq-empty-p children)
+ (cons name (car reg))
+ (cons name
+ (mapcar (lambda (c) (apply #'dfs c)) children))))))
(mapcar (lambda (s) (apply #'dfs s)) res)))
(defun eglot-imenu ()