Skip to content

Commit

Permalink
Option to autoshutdown after killing last buffer (joaotavora#309)
Browse files Browse the repository at this point in the history
This should close issue joaotavora#217, also cf. joaotavora#270.

* eglot.el: New defcustom `eglot-autoshutdown' (default t).
(eglot--managed-mode-onoff): Shutdown if so configured and no managed
buffers left.
  • Loading branch information
Ingo Lohmar committed Oct 2, 2019
1 parent a5e53ba commit 7efcf6b
Showing 1 changed file with 10 additions and 1 deletion.
11 changes: 10 additions & 1 deletion eglot.el
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,11 @@ as 0, i.e. don't block at all."
:type '(choice (boolean :tag "Whether to inhibit autoreconnection")
(integer :tag "Number of seconds")))

(defcustom eglot-autoshutdown t
"If t, shut down a language server automatically after killing
the last buffer it has managed."
:type 'boolean)

(defcustom eglot-events-buffer-size 2000000
"Control the size of the Eglot events buffer.
If a number, don't let the buffer grow larger than that many
Expand Down Expand Up @@ -1225,7 +1230,11 @@ Reset in `eglot--managed-mode-onoff'.")
(setq eglot--cached-current-server nil)
(when server
(setf (eglot--managed-buffers server)
(delq buf (eglot--managed-buffers server)))))))))
(delq buf (eglot--managed-buffers server)))
(when (and eglot-autoshutdown
(not (eglot--shutdown-requested server))
(not (eglot--managed-buffers server)))
(eglot-shutdown server))))))))

(defun eglot--current-server ()
"Find the current logical EGLOT server."
Expand Down

0 comments on commit 7efcf6b

Please sign in to comment.