[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNU ELPA] Eglot version 1.15

From: ELPA update
Subject: [GNU ELPA] Eglot version 1.15
Date: Sun, 30 Apr 2023 05:02:45 -0400

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

## 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 or from M-x info for more usage

  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 '', and Cc (or
X-Debbugs-CC) the maintainer '' as well.  Please
read the chapter titled "Troubleshooting" in the Eglot manual,

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  That is,
to look up issue github#1234, go to

* 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

** 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
bug in its "isIcomplete" flag (it is fixed in later versions).  If you
run into problems, disable this mechanism like so:

(add-hook 'c-common-mode-hook
   (lambda () (setq-local eglot-cache-session-completions nil)))

** At-point documentation less obtrusive in echo area

Eglot takes advantage of new features of ElDoc to separate short
documentation strings from large ones, sending the former to be shown in
the ElDoc's echo area and the latter to be shown in other outlets,
such as the *eldoc* buffer obtainable with 'C-h .'.

** New variable 'eglot-prefer-plaintext'

Customize this to t to opt-in to docstrings in plain text instead of


** Progress indicators inhabit the mode-line by default

To switch to the echo area, customize 'eglot-report-progress' to
'messages'.  To switch off progress reporting completely, set to nil.

** Snippet support is easier to enable

The user needn't manually activate 'yas-minor-mode' or
'yas-global-mode'.  If YASnippet is installed and the server supports
snippets, it is used automatically, unless the symbol 'yasnippet' has
been added to 'eglot-stay-out-of'.

* Changes in Eglot 1.13 (15/03/2023)

** ELPA installations on Emacs 26.3 are supported again.

* Changes in Eglot 1.12 (13/03/2023)

** LSP inlay hints are now supported.
Inlay hints are small text annotations not unlike diagnostics, but
designed to help readability instead of indicating problems.  For
example, a C++ LSP server can serve hints about positional parameter

reply via email to

[Prev in Thread] Current Thread [Next in Thread]