Subject: Re: bug#57725: 29.0.50; eglot: Error when using :initializationOptions

From: João Távora <[email-masked]>
Date: Sun, 11 Sep 2022 17:20:13 +0100

I almost agree with this fix as is, but maybe we should name the slot. What
happens if my the connection is restarted, shouldn't the previous
initializationOptions be reused?

On Sun, Sep 11, 2022, 16:13 Basil L. Contovounesios <[email-masked]> wrote:

> Augusto Stoffel [2022-09-11 09:02 +0200] wrote:
>
> > If I attempt to pass :initializationOptions to a server like so:
> >
> >     (setf (alist-get 'python-mode eglot-server-programs)
> >           '("jedi-language-server" :initializationOptions eglot--{}))
> >
> > I get an error:
> >
> >     Debugger entered--Lisp error: (invalid-slot-name "#<eglot-lsp-server
> eglot-lsp-server-92f0c8>" :initializationOptions)
> >
> > A workaround is to add this to the eglot-lsp-server defclass:
> >
> > @@ -788,6 +788,7 @@ treated as in `eglot-dbind'."
> >     (managed-buffers
> >      :documentation "List of buffers managed by server."
> >      :accessor eglot--managed-buffers)
> > +   (_ :initarg :initializationOptions)
> >     (saved-initargs
> >      :documentation "Saved initargs for reconnection purposes."
> >      :accessor eglot--saved-initargs)
> >
> > I can also confirm that after the workaround, the options are passed
> > correctly to the server upon initialization.
>
> Nice.
>
> Closing this ticket will also close
> https://github.com/joaotavora/eglot/issues/940.
>
> Thanks,
>
> --
> Basil
>