Version 1.15 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-2023 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 ** Diff previews of edits and new variable 'eglot-confirm-server-edits' 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. ** 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. ** Fixed "onTypeFormatting" feature For 'newline' commands, Eglot sometimes sent the wrong character code to the server. Also made this feature less chatty in the mode-line and messages buffer. ** Fixed completion sorting 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. github#1295 * 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 this string based on an imperfect heuristic and was often wrong. See github#1206. ** Fix problems with missing signature documentation (bug#62687) ** Reworked 'eglot-imenu' Eglot's Imenu backend (used for M-x imenu among other extensions), has been reworked. Most newer servers respond to 'textDocument/documentSymbol' with a vector of 'DocumentSymbol', not 'SymbolInformation'. It's not worth it trying to make the two formats resemble each other. This also lays groundwork supporting a forthcoming "breadcrumb" feature of bug#58431. ** New command 'eglot-update' This allows users to easily update to the latest version of Eglot. * Changes in Eglot 1.14 (3/4/2023) ** Faster, more responsive completion Eglot takes advantage of LSP's "isIncomplete" flag in responses to completion requests to drive new completion-caching mechanism for the duration of each completion session. Once a full set of completions is obtained for a given position, the server needn't be contacted in many scenarios, resulting in significantly less communication overhead. This works with the popular Company package and stock completion-at-point interfaces. A variable 'eglot-cache-session-completions', t by default, controls this. The mechanism was tested with ccls, jdtls, pylsp, golsp and clangd. Notably, the C/C++ language server Clangd version 15 has a ... ...