From c5a4366b3f3c6ee4178d954e58eb226441d1d2ee Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jo=C3=A3o=20T=C3=A1vora?= Date: Wed, 27 Dec 2023 06:05:43 -0600 Subject: [PATCH] Eglot: bump to 1.16 * etc/EGLOT-NEWS: Update. * lisp/progmodes/eglot.el (Version): Bump to 1.15 (Package-Requires): Bump jsonrpc depedency to 1.23 --- etc/EGLOT-NEWS | 68 ++++++++++++++++++++++++++++++----------- lisp/jsonrpc.el | 4 +-- lisp/progmodes/eglot.el | 4 +-- 3 files changed, 55 insertions(+), 21 deletions(-) diff --git a/etc/EGLOT-NEWS b/etc/EGLOT-NEWS index 2f54dc43cbf..03feaabc9d8 100644 --- a/etc/EGLOT-NEWS +++ b/etc/EGLOT-NEWS @@ -20,15 +20,30 @@ https://github.com/joaotavora/eglot/issues/1234. * Changes in upcoming Eglot -** Diff previews of edits and new variable 'eglot-confirm-server-edits' + +* Changes in Eglot 1.16 (27/12/2023) + +** Code actions can be previewed in diff format The variable 'eglot-confirm-server-edits' replaces the obsolete 'eglot-confirm-server-initiated-edits' and brings about a new -confirmation model, making it possible to have only certain commands -require user confirmation. The type of confirmation has also been -enhanced. In particular it allows a temporary 'diff-mode' buffer to -display the proposed changes, so the user can apply them one by one. -See bug#60338. +confirmation model for code actions, making it possible to have only +certain commands require user confirmation. It allows a temporary +'diff-mode' buffer to display the proposed changes, so the user can +apply them one by one. See bug#60338. + +** Completion sorting has been fixed + +In some situations, Eglot was not respecting the completion sort order +decided by the language server, falling back on the sort order +determined by the 'flex' completion style instead. See github#1306. + +** Improve mouse invocation of code actions + +When invoking code actions by middle clicking with the mouse on +Flymake diagnostics, it was often the case that Eglot didn't request +code actions correctly and thus no actions were offered to the user. +This has been fixed. See github#1295. ** Optimized file-watching capability @@ -37,24 +52,43 @@ watching requests. This change slightly reduces the number of file watcher objects requested from the operating system, which can be a problem, particularly on Mac OS. See github#1228 and github#1226. -** Fixed "onTypeFormatting" feature +** Faster, more accurate, event logging + +The Eglot events buffer takes advantage of new functionality in +Jsonrpc 1.23. By default, Lisp-style printing of JSON-RPC message (a +common cause of performance degradation) is disabled. The full +original JSON message is presented instead. See new variable +'eglot-events-buffer-config', which replaces the obsolete +'eglot-events-buffer-size'. + +** 'textdocument/onTypeFormatting' feature has been fixed For 'newline' commands, Eglot sometimes sent the wrong character code -to the server. Also made this feature less chatty in the mode-line +to the server. Also this feature is now less chatty in the mode-line and messages buffer. -** Fixed completion sorting +** Partial fix C-M-i "middle-of-symbol" completions (github#1339) -In some situations, Eglot was not respecting the completion sort order -decided by the language server, falling back on the sort order -determined by the 'flex' completion style instead. See github#1306. +** Add "Extending Eglot" section to manual -** Improve mouse invocation of code actions +** Fixed Elisp interface 'eglot-lsp-context' (github#1336, github#1337) -When invoking code actions by middle clicking with the mouse on -Flymake diagnostics, it was often the case that Eglot didn't request -code actions correctly and thus no actions were offered to the user. -This has been fixed. github#1295 +** Supports LSP's 'window/showRequest' (bug#62116) + +** The self-upgrade command is now called 'eglot-upgrade-eglot' + +** Newly added directories also watched (github#1228) + +** Send correct ':language-id' for JavaScript server (bug#67150) + +** New servers have been added to 'eglot-server-programs'. + +- nls (bug#63603) +- nixd (bug#64214) +- lexical (bug#65359) +- terraform-ls (bug#65671) +- ruff-lsp (bug#67441) +- uiua (bug#67850) * Changes in Eglot 1.15 (29/4/2023) diff --git a/lisp/jsonrpc.el b/lisp/jsonrpc.el index b11fe1a86cc..5ce72eac77e 100644 --- a/lisp/jsonrpc.el +++ b/lisp/jsonrpc.el @@ -1003,9 +1003,9 @@ of the API instead.") (or method "") (if id (format "[%s]" id) ""))))) (msg - (cond ((eq format 'full) + (cond (nil(eq format 'full) (format "%s%s\n" preamble (or json log-text))) - ((eq format 'short) + (nil(eq format 'short) (format "%s%s\n" preamble (or log-text ""))) (t (format "%s%s" preamble diff --git a/lisp/progmodes/eglot.el b/lisp/progmodes/eglot.el index 8ff2711ea85..1b593439d62 100644 --- a/lisp/progmodes/eglot.el +++ b/lisp/progmodes/eglot.el @@ -2,12 +2,12 @@ ;; Copyright (C) 2018-2023 Free Software Foundation, Inc. -;; Version: 1.15 +;; Version: 1.16 ;; Author: João Távora ;; Maintainer: João Távora ;; URL: https://github.com/joaotavora/eglot ;; Keywords: convenience, languages -;; Package-Requires: ((emacs "26.3") (jsonrpc "1.0.16") (flymake "1.2.1") (project "0.9.8") (xref "1.6.2") (eldoc "1.14.0") (seq "2.23") (external-completion "0.1")) +;; Package-Requires: ((emacs "26.3") (jsonrpc "1.0.23") (flymake "1.2.1") (project "0.9.8") (xref "1.6.2") (eldoc "1.14.0") (seq "2.23") (external-completion "0.1")) ;; This is a GNU ELPA :core package. Avoid adding functionality ;; that is not available in the version of Emacs recorded above or any -- 2.39.2