aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/progmodes/eglot.el14
1 files changed, 9 insertions, 5 deletions
diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el
index 5ccae5210fe..f58a895a3f1 100644
--- a/lisp/progmodes/eglot.el
+++ b/lisp/progmodes/eglot.el
@@ -1419,11 +1419,15 @@ INTERACTIVE is t if called interactively."
1419 (interactive (list (eglot--current-server-or-lose) t)) 1419 (interactive (list (eglot--current-server-or-lose) t))
1420 (when (jsonrpc-running-p server) 1420 (when (jsonrpc-running-p server)
1421 (ignore-errors (eglot-shutdown server interactive nil 'preserve-buffers))) 1421 (ignore-errors (eglot-shutdown server interactive nil 'preserve-buffers)))
1422 (eglot--connect (eglot--major-modes server) 1422 (let* ((default-directory (project-root (eglot--project server)))
1423 (eglot--project server) 1423 (project (eglot--current-project)))
1424 (eieio-object-class-name server) 1424 (if (not project)
1425 (eglot--saved-initargs server) 1425 (eglot--error "Project in `%s' is gone!" default-directory)
1426 (eglot--language-ids server)) 1426 (eglot--connect (eglot--major-modes server)
1427 project
1428 (eieio-object-class-name server)
1429 (eglot--saved-initargs server)
1430 (eglot--language-ids server))))
1427 (eglot--message "Reconnected!")) 1431 (eglot--message "Reconnected!"))
1428 1432
1429(defvar eglot--managed-mode) ; forward decl 1433(defvar eglot--managed-mode) ; forward decl