]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix automatic project creation
authorJoão Távora <joaotavora@gmail.com>
Sun, 13 May 2018 22:22:31 +0000 (23:22 +0100)
committerJoão Távora <joaotavora@gmail.com>
Sun, 13 May 2018 23:28:35 +0000 (00:28 +0100)
* eglot.el (eglot): Take PROJECT arg. Return process.
(eglot--interactive): Returns a project.

lisp/progmodes/eglot.el

index c1b63ea6e3d678fdbedab50f52794db966e8d7e9..3d5d4927ece7298faa190e6136ff8836515eed48 100644 (file)
@@ -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.