Version 1.18 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-2025 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.18 (20/1/2025) ** 'eglot-managed-mode-hook' now run when turning off Eglot (bug#70958) ** Better handling of 'eglot-report-progress' Eglot no longer advertises the 'workDoneProgress' capability when this customization variable is set to nil. This requires a restart of the server for the change to take effect. ** LSP MarkedString interface is now supported (bug#71353) Some servers still use this deprecated interface for communicating documentation snippets. ** Fixes to completion logic (bug#68699, github#1339, github#1349) These affect mostly the "vanilla" frontend to completions (invoked with C-M-i). ** More strict completion expansion (bug#72705). Ensures that "expand common" commands (such as C-M-i or TAB in third-party frontends) don't result in fewer completions than before they are called. ** More robust completion results when typing quickly (github#1474, bug#73279) ** Support for 'InsertReplaceEdit' objects (bug#73857) This allows servers such as Zig's 'zls' to behave better when completion starts from the middle of an incomplete symbol. ** Experimental support for Eglot-only subprojects (github#1337) Useful for complex projects with subprojects needing different language servers. See associated github issue https://github.com/joaotavora/eglot/discussions/1337 for examples. ** Support nested {} in server-provided globs (github#1403) In short, play nice with 'tailwindcss-language-server' which seems to use this. ** Eglot commands have a 'command-modes' property (bug#70554) ** Fix to function signature display (bug#74914) ** Fix command execution (bug#71642) ** New servers have been added to 'eglot-server-programs'. - blueprint (bug#70015) - BasedPyright (bug#69925) - move-analyzer (bug#69796) - millet - nushell (bug#68823) ** Eglot uses an internal 'track-changes.el' library (bug#70077) This should in theory help smoothen the Eglot's handling of events that change the buffer. The library has been problematic in the past, let's hope we're past that phase. * 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. ... ...