Subject: Re: bug#64274: 30.0.50; Eglot requests textDocument/documentSymbol if its not declared in the server capabilities
From: João Távora <[email-masked]>
To: Wilhelm Kirschbaum <[email-masked]>, [email-masked]
Date: Sat, 1 Jul 2023 23:07:46 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Pushed this patch to master and marking this done.

João

On Sun, Jun 25, 2023 at 12:22 AM Wilhelm Kirschbaum
<[email-masked]> wrote:
>
>
>
> > 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
>
> Yes, this works. Thank you. :)
>
> Wilhelm

-- 
João Távora