branch: externals/eglot commit dc08e8e3c4bd2a907533ef0713552e17ec75cbe6 Author: João Távora <joaotav...@gmail.com> Commit: João Távora <joaotav...@gmail.com>
Fix automatic project creation * eglot.el (eglot): Take PROJECT arg. Return process. (eglot--interactive): Returns a project. --- eglot.el | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/eglot.el b/eglot.el index c1b63ea..3d5d492 100644 --- a/eglot.el +++ b/eglot.el @@ -292,6 +292,7 @@ INTERACTIVE is t if inside interactive call." "\n" base-prompt))))) (list managed-mode + (or (project-current) `(transient . default-directory)) (if prompt (split-string-and-unquote (read-shell-command prompt @@ -302,11 +303,13 @@ INTERACTIVE is t if inside interactive call." t))) ;;;###autoload -(defun eglot (managed-major-mode command &optional interactive) +(defun eglot (managed-major-mode project command &optional interactive) "Start a Language Server Protocol server. Server is started with COMMAND and manages buffers of MANAGED-MAJOR-MODE for the current project. +PROJECT is a project instance as returned by `project-current'. + COMMAND is a list of strings, an executable program and optionally its arguments. If the first and only string in the list is of the form \"<host>:<port>\" it is taken as an @@ -323,8 +326,7 @@ MANAGED-MAJOR-MODE. INTERACTIVE is t if called interactively." (interactive (eglot--interactive)) - (let* ((project (project-current 'maybe)) - (short-name (eglot--project-short-name project))) + (let* ((short-name (eglot--project-short-name project))) (let ((current-process (eglot--current-process))) (if (and (process-live-p current-process) interactive @@ -339,7 +341,8 @@ INTERACTIVE is t if called interactively." interactive))) (eglot--message "Connected! Process `%s' now \ managing `%s' buffers in project `%s'." - proc managed-major-mode short-name)))))) + proc managed-major-mode short-name) + proc))))) (defun eglot-reconnect (process &optional interactive) "Reconnect to PROCESS.