[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#64274: 30.0.50; Eglot requests textDocument/documentSymbol if its no
From: |
João Távora |
Subject: |
bug#64274: 30.0.50; Eglot requests textDocument/documentSymbol if its not declared in the server capabilities |
Date: |
Sun, 25 Jun 2023 00:06:00 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) |
Wilhelm Kirschbaum <wkirschbaum@gmail.com> writes:
>> Thanks, i think the patch is in the right direction, but you could
>> use eglot--server-capable-or-lose.
>>
>
> The idea is to transparently just fall back to the non-eglot imenu and
> not sure if I want to see a warning for this every time imenu gets
> called. > Can you test it?
OK, this makes sense. Then please test this instead.
João
diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el
index e2478f2dde3..c353ab6fce0 100644
--- a/lisp/progmodes/eglot.el
+++ b/lisp/progmodes/eglot.el
@@ -3348,9 +3348,11 @@ eglot--imenu-DocumentSymbol
(mapcar (lambda (c) (apply #'dfs c)) children))))))
(mapcar (lambda (s) (apply #'dfs s)) res)))
-(defun eglot-imenu ()
+(cl-defun eglot-imenu ()
"Eglot's `imenu-create-index-function'.
Returns a list as described in docstring of `imenu--index-alist'."
+ (unless (eglot--server-capable :textDocument/documentSymbol)
+ (cl-return-from eglot-imenu))
(let* ((res (eglot--request (eglot--current-server-or-lose)
:textDocument/documentSymbol
`(:textDocument