Version 1.17 of package Eglot has just been released in GNU ELPA. You can now find it in M-x list-packages RET.
Eglot describes itself as: ================================ The Emacs Client for LSP servers ================================ More at https://elpa.gnu.org/packages/eglot.html ## Summary: Eglot ("Emacs Polyglot") is an Emacs LSP client that stays out of your way. Typing M-x eglot in some source file is often enough to get you started, if the language server you're looking to use is installed in your system. Please refer to the manual, available from https://joaotavora.github.io/eglot/ or from M-x info for more usage instructions. If you wish to contribute changes to Eglot, please do read the user manual first. Additionally, take the following in consideration: ## Recent NEWS: Eglot NEWS -*- outline -*- Copyright (C) 2018-2024 Free Software Foundation, Inc. See the end of the file for license conditions. Please send Eglot bug reports to 'bug-gnu-em...@gnu.org', and Cc (or X-Debbugs-CC) the maintainer 'joaotav...@gmail.com' as well. Please read the chapter titled "Troubleshooting" in the Eglot manual, available https://joaotavora.github.io/eglot/#Troubleshooting-Eglot This file is about changes in Eglot, the Emacs client for LSP (Language Server Protocol) distributed with GNU Emacs since Emacs version 29.1 and with GNU ELPA since 2018. Note: references to some Eglot issues are presented as "github#nnnn". This refers to https://github.com/joaotavora/eglot/issues/. That is, to look up issue github#1234, go to https://github.com/joaotavora/eglot/issues/1234. * Changes in upcoming Eglot * Changes in Eglot 1.17 (25/1/2024) ** Fixes to completion (github#847, github#1349) ** Fix code-action gathering for some servers (github#847) ** Experimental support for Eglot-only subprojects Until project.el's support for subprojects improves, github#1337 describes a reasonably sane way to configure nested sub-projects within a larger one just for Eglot purposes. * 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 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 Some servers, like the Pyright language server, issue too many file 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. ** 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 this feature is now less chatty in the mode-line and messages buffer. ** Partial fix C-M-i "middle-of-symbol" completions (github#1339) ** Add "Extending Eglot" section to manual ** Fixed Elisp interface 'eglot-lsp-context' (github#1336, github#1337) ** 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) ** Fix LSP "languageId" detection Many servers today support multiple languages, meaning they can handle more than one file type in the same connection. This relies on the client supplying a ':languageId' string. Previously, Eglot calculated ... ...