Eglot: don't send JSONRPC params in 'shutdown' request (bug#79653)

See also bug#66144.
Github-reference: https://github.com/joaotavora/eglot/discussions/1540

* lisp/progmodes/eglot.el (eglot-shutdown): Pass :jsonrpc-omit
(Package-Requires): Require jsonrpc 1.0.26.

* etc/EGLOT-NEWS: Announce bugfix.
This commit is contained in:
João Távora 2025-10-23 21:42:00 +01:00
parent 74618070ab
commit 1e7981fd86
2 changed files with 8 additions and 2 deletions

View file

@ -60,6 +60,12 @@ Eglot now preserves crucial properties in the Markdown documentation
provided by the LSP server, fixing a longstanding bug with clickable
hyperlinks. See also github#1238.
** Compliant shutdown requests (bug#79653, bug#66144, github#1540)
Eglot now complies with the latest LSP spec, which mandates that the
shutdown request mustn't have any parameters. This should fix problems
with some servers.
* Changes in Eglot 1.18 (20/1/2025)

View file

@ -7,7 +7,7 @@
;; Maintainer: João Távora <joaotavora@gmail.com>
;; URL: https://github.com/joaotavora/eglot
;; Keywords: convenience, languages
;; Package-Requires: ((emacs "26.3") (eldoc "1.14.0") (external-completion "0.1") (flymake "1.4.1") (jsonrpc "1.0.24") (project "0.9.8") (seq "2.23") (xref "1.6.2"))
;; Package-Requires: ((emacs "26.3") (eldoc "1.14.0") (external-completion "0.1") (flymake "1.4.1") (jsonrpc "1.0.26") (project "0.9.8") (seq "2.23") (xref "1.6.2"))
;; This is a GNU ELPA :core package. Avoid adding functionality
;; that is not available in the version of Emacs recorded above or any
@ -1270,7 +1270,7 @@ SERVER."
(unwind-protect
(progn
(setf (eglot--shutdown-requested server) t)
(eglot--request server :shutdown eglot--{} :timeout (or timeout 1.5))
(eglot--request server :shutdown :jsonrpc-omit :timeout (or timeout 1.5))
(jsonrpc-notify server :exit eglot--{}))
;; Now ask jsonrpc.el to shut down the server.
(jsonrpc-shutdown server (not preserve-buffers))