gnu-emacs-sources
[Top][All Lists]
Advanced

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

[GNU ELPA] Eglot version 1.14


From: ELPA update
Subject: [GNU ELPA] Eglot version 1.14
Date: Mon, 03 Apr 2023 17:02:26 -0400

Version 1.14 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-emacs@gnu.org', and Cc (or
X-Debbugs-CC) the maintainer 'joaotavora@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 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
Markdown.

(bug#61373)

** 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
names in function calls and a variable's automatically deduced type.
Emacs can display these hints using overlays, helping the user
remember those types and parameter names.

** Longstanding Tramp instability issues solved.
The solution involves a Tramp-specific workaround in Eglot.  Future
Tramp versions will have this problem solved at the origin.  The
workaround will then be removed.  Emacs bug#61350 has more details.

(github#859, github#1020, github#883)

** LSP's 'positionEncoding' capability is now supported.
The position-encoding scheme (UTF-8, UTF-16 or UTF-32) can now
be negotiated with the server.

** More of the user's Eldoc configuration is respected.
This change addresses the problems reported in many Elglot reports
dating back to early 2021 at least.

(github#646, github#894, github#920, github#1031, github#1171).

This is unfinished work, as 'eldoc-documentation-strategy' is still
set by Eglot during its tenure over a buffer.  The default value for
...
...



reply via email to

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