GNU bug report logs -
#70724
29.2.50; eglot-reconnect errors when the project is deleted
Previous Next
Reported by: Spencer Baugh <sbaugh <at> janestreet.com>
Date: Thu, 2 May 2024 19:38:01 UTC
Severity: normal
Found in version 29.2.50
Done: Dmitry Gutov <dmitry <at> gutov.dev>
Bug is archived. No further changes may be made.
Full log
Message #19 received at 70724-done <at> debbugs.gnu.org (full text, mbox):
On 04/05/2024 04:09, Dmitry Gutov wrote:
>
> I think I like this solution (as long as the nil value returned by
> project-current on this step is appropriately handled).
>
> Something like:
>
> diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el
> index 6896baf30ce..7b2461c3ce6 100644
> --- a/lisp/progmodes/eglot.el
> +++ b/lisp/progmodes/eglot.el
> @@ -1426,11 +1426,15 @@ eglot-reconnect
> (interactive (list (eglot--current-server-or-lose) t))
> (when (jsonrpc-running-p server)
> (ignore-errors (eglot-shutdown server interactive nil
> 'preserve-buffers)))
> - (eglot--connect (eglot--major-modes server)
> - (eglot--project server)
> - (eieio-object-class-name server)
> - (eglot--saved-initargs server)
> - (eglot--language-ids server))
> + (let* ((root (project-root (eglot--project server)))
> + (project (project-current nil root)))
> + (if (not project)
> + (eglot--error "Project in `%s' is gone!" root)
> + (eglot--connect (eglot--major-modes server)
> + project
> + (eieio-object-class-name server)
> + (eglot--saved-initargs server)
> + (eglot--language-ids server))))
> (eglot--message "Reconnected!"))
>
> (defvar eglot--managed-mode) ; forward decl
Okay, I've pushed a slightly revised version of this patch now. It makes
sense to me, even if some caching issues might remain in project backend(s).
Spencer, please see if it takes care of your scenario.
This bug report was last modified 184 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.