From: Dmitry Gutov Date: Thu, 6 Jun 2024 20:26:25 +0000 (+0300) Subject: eglot-reconnect: Re-fetch the current project X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=cc93a6a0ab29ec58414e8a4089a9fe332c011c09;p=emacs.git eglot-reconnect: Re-fetch the current project * lisp/progmodes/eglot.el (eglot-reconnect): Retrieve the current project just in case something changed (bug#70724). (cherry picked from commit b571c6571c8bc4c34569650104aee273c19cbfd4) --- diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el index 22cee1ada7b..6b4c00fdb55 100644 --- a/lisp/progmodes/eglot.el +++ b/lisp/progmodes/eglot.el @@ -1419,11 +1419,15 @@ INTERACTIVE is t if called interactively." (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* ((default-directory (project-root (eglot--project server))) + (project (eglot--current-project))) + (if (not project) + (eglot--error "Project in `%s' is gone!" default-directory) + (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