branch: externals/elpa
commit dc08e8e3c4bd2a907533ef0713552e17ec75cbe6
Author: João Távora <[email protected]>
Commit: João Távora <[email protected]>
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.