Bump Eglot version to 1.12
* etc/EGLOT-NEWS: New file. * etc/NEWS: Briefly mention etc/EGLOT-NEWS. * lisp/progmodes/eglot.el: Bump versions.
This commit is contained in:
parent
54e123a505
commit
ba22a2c346
3 changed files with 513 additions and 3 deletions
509
etc/EGLOT-NEWS
Normal file
509
etc/EGLOT-NEWS
Normal file
|
@ -0,0 +1,509 @@
|
|||
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.
|
||||
|
||||
|
||||
* 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 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
|
||||
it cannot work reasonably with Eglot's additions to
|
||||
'eldoc-documentation-functions'.
|
||||
|
||||
** Completion labels correctly displayed in servers like clangd.
|
||||
|
||||
(github#1141)
|
||||
|
||||
** Assorted bugfixes.
|
||||
|
||||
(bug#61312, bug#61478, bug#61532, bug#61726, bug#61866, bug#61748)
|
||||
|
||||
|
||||
* Changes in Eglot 1.11 (27/1/2023)
|
||||
|
||||
** New server vscode-json-languageserver added to 'eglot-server-programs'.
|
||||
|
||||
(bug#60198)
|
||||
|
||||
** Assorted bugfixes.
|
||||
|
||||
(bug#60379, bug#60557, (bug#61048)
|
||||
|
||||
|
||||
* Changes in Eglot 1.10 (16/12/2022)
|
||||
|
||||
** Emacs progress reporters are used for LSP progress notifications.
|
||||
(bug#59149)
|
||||
|
||||
** LSP reported URIs other than file:// are passed on to Emacs.
|
||||
This change allows other URI handlers, such as a 'jar:' handling
|
||||
package, to cooperate with Eglot and find files inside compressed file
|
||||
systems (bug#58790).
|
||||
|
||||
** Eglot now shows in the menu bar.
|
||||
|
||||
** Tree-sitter modes added to 'eglot-server-programs'.
|
||||
These modes are usually handled by the same server that handles the
|
||||
"classical mode".
|
||||
|
||||
** New servers chsharp-ls and texlab added to 'eglot-server-programs'.
|
||||
|
||||
** Assorted bugfixes.
|
||||
(bug#59824, bug#59338)
|
||||
|
||||
|
||||
* Changes in Eglot 1.9 (8/10/2022)
|
||||
|
||||
This is the last release before integration into Emacs's core.
|
||||
|
||||
** New 'M-x eglot-list-connections' command.
|
||||
Probably not very useful for now. More keybindings and clickable
|
||||
shortcuts to connection-specific commands to be added later.
|
||||
|
||||
** Manual temporarily living in separate MANUAL.md file.
|
||||
The manual has been rewritten mostly from scratch. It is structured
|
||||
hierarchically and more complete. After the merge into Emacs, this
|
||||
upcoming TexInfo manual uses this manual as a starting point.
|
||||
|
||||
** Support for "single server, multiple modes".
|
||||
Previously, if an entry such as '((c++-mode c-mode) . ("clangd)")' was
|
||||
found in 'eglot-server-programs', it meant that '.cpp' files '.c'
|
||||
files would lead to two 'clangd' instances for managing them, even if
|
||||
these files were in the same project. Now only one is created. It is
|
||||
assumed that most, if not all, servers configured in
|
||||
'eglot-server-programs' handle this correctly.
|
||||
|
||||
(github#681)
|
||||
|
||||
** 'eglot-imenu' no longer uses problematic "special elements".
|
||||
Though Eglot's 'eglot-imenu' returned a fully compliant 'imenu'
|
||||
structure, that object was not understood by many other frontends
|
||||
other than 'M-x imenu' itself. Since the special functionality it
|
||||
enabled wasn't being used anyway, decided to remove it to fix these
|
||||
longstanding problems.
|
||||
|
||||
(github#758, github#536, github#535)
|
||||
|
||||
** 'eglot-workspace-configuration' has been overhauled.
|
||||
This variable and its uses are now more thoroughly documented. It can
|
||||
be a set to a function for dynamic calculation of the configuration.
|
||||
The preferred format is a plist, though the earlier alist format is
|
||||
still supported.
|
||||
|
||||
(github#967, github#590, github#790)
|
||||
|
||||
** C-u M-. lists and completes arbitrary workspace symbols.
|
||||
A very old request, now made possible by a relatively recent change to
|
||||
the 'workspace/symbol' RPC method.
|
||||
|
||||
(github#131)
|
||||
|
||||
** Rework mode-line menus.
|
||||
New menus help discover Eglot's features and show which of them are
|
||||
supported by the current server. Menus can be customized away via
|
||||
'eglot-menu-string', making space in mode-line.
|
||||
|
||||
(github#792)
|
||||
|
||||
** Easier to use LSP initialize.initializationOptions.
|
||||
In 'eglot-server-programs' a plist may be appended to the usual list
|
||||
of strings passed as command line arguments. The value of its
|
||||
':initializationOptions' key constructs the corresponding LSP JSON
|
||||
object. This may be easier than creating a 'defclass' for a specific
|
||||
server and specializing 'eglot-initialization-options' to that class.
|
||||
|
||||
(github#901, github#845, github#940)
|
||||
|
||||
** LSP on-type formatting is now supported.
|
||||
This is the 'documentOnTypeFormattingProvider' LSP capability, which
|
||||
may be disabled via 'eglot-ignored-server-capabilities'
|
||||
|
||||
(github#899)
|
||||
|
||||
** Basic LSP "workspace folders" support added.
|
||||
Eglot now advertises 'project-root' and 'project-external-roots' as
|
||||
workspace-folders. (Configuring 'project-vc-external-roots-function'
|
||||
via Elisp or 'tags-table-list' via Custtomize are two ways to set the
|
||||
external roots of a simple git project.)
|
||||
|
||||
(github#893)
|
||||
|
||||
** Eglot can now show project wide diagnosics via Flymake.
|
||||
Some LSP servers report diagnostics for all files in the current
|
||||
workspace. Flymake has (as of version 1.2.1) the option to show
|
||||
diagnostics from buffers other than the currently visited one. The
|
||||
command 'M-x flymake-show-project-diagnostics' will now show all
|
||||
diagnostics relevant to a workspace.
|
||||
|
||||
(github#810)
|
||||
|
||||
** Support LSP completion tags.
|
||||
An LSP completion tag can be used to tell the editor how
|
||||
to render a completion. Presently, one kind of tag exists, denoting
|
||||
its corresponding completion as obsolete.
|
||||
|
||||
(github#797)
|
||||
|
||||
** Support LSP optional diagnostic tags.
|
||||
A diagnostic tag can indicate either "unused or unnecessary code" or
|
||||
"deprecated or obsolete code". Following the rendering suggestions in
|
||||
the protocol, we fade out unnecessary code and strike-through
|
||||
deprecated code.
|
||||
|
||||
(github#794)
|
||||
|
||||
** The Rust language server is now rust-analyzer by default.
|
||||
Eglot will now prefer starting "rust-analyzer" to "rls" when it is
|
||||
available. The special support code for RLS has been removed.
|
||||
|
||||
(github#803)
|
||||
|
||||
** New servers have been added to 'eglot-server-programs'.
|
||||
- clojure-lsp (github#813)
|
||||
- racket-langserver (github#694)
|
||||
- futhark lsp (github#922)
|
||||
- purescript-language-server (github#905)
|
||||
- Perl::LanguageServer (github#952)
|
||||
- marksman (github#1013)
|
||||
- jedi-language-server ([#994](github#994))
|
||||
|
||||
|
||||
* Changes in Eglot 1.8 (12/1/2022)
|
||||
|
||||
** Alternate servers supported out-of-box for the same major mode.
|
||||
In practice, this removes the need for Eglot to "officially" bless one
|
||||
server over another.
|
||||
|
||||
Do not confuse this feature with another missing feature which
|
||||
consists of supporting multiple servers simultaneously managing a
|
||||
major mode within a project.
|
||||
|
||||
(github#688)
|
||||
|
||||
** TRAMP support added.
|
||||
There are no variables to customize: visit a remote file, ensure the
|
||||
server also exists in the remote, and type M-x eglot.
|
||||
|
||||
(github#637, github#463, github#84)
|
||||
|
||||
** 'eglot-ignored-server-capabilities' now correctly spelled.
|
||||
This user-visible variable used to be spelled
|
||||
'eglot-ignored-server-capabilites', which is still a valid but
|
||||
obsolete name.
|
||||
|
||||
(github#724)
|
||||
|
||||
** Eglot can manage cross-referenced files outside project.
|
||||
This is activated by a new customization option
|
||||
'eglot-extend-to-xref', which defaults to nil.
|
||||
|
||||
(github#76, github#686, github#695)
|
||||
|
||||
** Code action shortcuts can be added by the user.
|
||||
'M-x eglot-code-actions' accepts an optional 'action-kind' argument,
|
||||
specified interactively with 'C-u'. Other shortcuts call specific
|
||||
actions directly ('eglot-code-action-inline',
|
||||
'eglot-code-action-extract', 'eglot-code-action-rewrite',
|
||||
'eglot-code-action-organize-imports' and
|
||||
'eglot-code-action-quickfix'). One can create own shortcuts for code
|
||||
actions with specific a kind by calling 'eglot-code-actions' from
|
||||
elisp.
|
||||
|
||||
(github#411)
|
||||
|
||||
** New command 'eglot-shutdown-all added.
|
||||
This disconnects all the Eglot connections in the user's session.
|
||||
|
||||
(github#643)
|
||||
|
||||
** New variable 'eglot-withhold-process-id' added.
|
||||
If non-nil, Eglot will not send the Emacs process id to the language
|
||||
server. This can be useful when using docker to run a language
|
||||
server.
|
||||
|
||||
(github#722)
|
||||
|
||||
** Several new servers have been added to 'eglot-server-programs'.
|
||||
- cmake-language-server (github#787)
|
||||
- css-languageserver (github#204, github#769)
|
||||
- fortls (github#603)
|
||||
- html-languageserver (github#204, github#769)
|
||||
- json-languageserver (github#204, github#769)
|
||||
- lua-lsp (github#721)
|
||||
- mint ls (github#750)
|
||||
- pyright (github#742)
|
||||
- vim-language-server (github#787)
|
||||
- yaml-language-server (github#751)
|
||||
- zls (github#646)
|
||||
|
||||
|
||||
* Changes in Eglot 1.7 (16/12/2020)
|
||||
|
||||
** Hierarchical symbols are supported in Imenu.
|
||||
(github#303).
|
||||
|
||||
** Multiple "documentation at point" sources are supported.
|
||||
Such sources include as LSP's signature, hover and also the Flymake
|
||||
diagnostic messages. They can all be presented in the echo area
|
||||
(space permitting), or via 'C-h .'. For now, composition of different
|
||||
sources can be customized using 'eldoc-documentation-strategy',
|
||||
'eldoc-echo-area-use-multiline-p' and 'eldoc-prefer-doc-buffer'.
|
||||
|
||||
The variables 'eglot-put-doc-in-help-buffer' and
|
||||
'eglot-auto-display-help-buffer' have been removed.
|
||||
|
||||
(github#439, github#494, github#481, github#454)
|
||||
|
||||
|
||||
* Changes in Eglot 1.6 (16/04/2020)
|
||||
|
||||
** Column offset calculation is now LSP-conformant.
|
||||
It seems the majority of servers now comply with the language server
|
||||
specification when it comes to handling non-ASCII texts. Therefore
|
||||
the default values of 'eglot-move-to-column-function' and
|
||||
'eglot-current-column-function' have been changed. The documentations
|
||||
of these variables help to restore the old behavior.
|
||||
|
||||
(github#361)
|
||||
|
||||
** LSP workspace/configuration requests are supported.
|
||||
Also a new section "Per-project server configuration" in the README.md
|
||||
should answer some FAQ's in this regard.
|
||||
|
||||
(github#326)
|
||||
|
||||
|
||||
* Changes in Eglot 1.5 (20/10/2019)
|
||||
|
||||
** Eglot takes over Company configuration.
|
||||
Similar to what was already the case with Flymake, Eldoc and Xref, use
|
||||
just the backend that can do something useful in Eglot,
|
||||
'company-capf'. See 'eglot-stay-out-of' to opt out of this.
|
||||
|
||||
(github#324)
|
||||
|
||||
** New option 'eglot-autoshutdown' added.
|
||||
This disconnects the server after last managed buffer is killed.
|
||||
|
||||
(github#217, github#270)
|
||||
|
||||
** Completion support support has been fixed.
|
||||
Among other things, consider LSP's "filterText" cookies, which enables
|
||||
a kind of poor-man's flex-matching for some backends.
|
||||
|
||||
(github#235, github#313, github#311, github#279)
|
||||
|
||||
** Supports LSP's "goto declaration/implementation/typeDefinition".
|
||||
|
||||
(github#302)
|
||||
|
||||
** New option 'eglot-send-changes-idle-time' added.
|
||||
|
||||
(github#258)
|
||||
|
||||
** Eglot's Eldoc no longer flickers when moving around.
|
||||
|
||||
(github#198)
|
||||
|
||||
** Large docs shown in help buffer instead of echo area by default.
|
||||
Also add two new customization variables
|
||||
'eglot-put-doc-in-help-buffer' and 'eglot-auto-display-help-buffer'.
|
||||
|
||||
(github#198)
|
||||
|
||||
** Built-in support for Go, Elixir and Ada added.
|
||||
|
||||
(github#304, github#264, github#316)
|
||||
|
||||
|
||||
* Changes in Eglot 1.4 (5/1/2019)
|
||||
|
||||
** Parameter highlighting in the first line of signature corrected.
|
||||
|
||||
** Markdown documentation strings are rendered with faces
|
||||
Eglot uses 'gfm-view-mode' for this.
|
||||
|
||||
** Hard dependencies on Flymake have been removed.
|
||||
The user can turn Flymake off now in buffers managed by Eglot.
|
||||
|
||||
** Connection hooks are run with proper directory local variables.
|
||||
This fixes issues with suspiciously empty 'didChangeConfiguration'
|
||||
messages that are supposed to communicate parameters from a
|
||||
directory-set 'eglot-workspace-configuration'.
|
||||
|
||||
(github#196)
|
||||
|
||||
** Completion sorting has been fixed.
|
||||
If the server returns completions in some sensible order, Eglot will
|
||||
keep it.
|
||||
(github#190)
|
||||
|
||||
** Flymake and Eldoc taken over completely while managing buffers.
|
||||
No longer try to add Eglot's facilities to existing facilities in
|
||||
these two domains.
|
||||
|
||||
|
||||
* Changes in Eglot 1.3 (10/12/2018)
|
||||
|
||||
** Provide strict checking of incoming LSP messagesp.
|
||||
|
||||
(github#144, github#156)
|
||||
|
||||
** Add brief context after 'xref-find-references' when available.
|
||||
|
||||
(github#52)
|
||||
|
||||
** Support 'completionContext' to help servers like 'ccls'.
|
||||
|
||||
** Use Flymake from GNU ELPA
|
||||
|
||||
(github#178)
|
||||
|
||||
|
||||
* Changes in Eglot 1.2 (23/11/2018)
|
||||
|
||||
** Support snippet completions.
|
||||
Eglot uses 'yasnippet.el' for this, if it is installed.
|
||||
|
||||
(github#50)
|
||||
|
||||
** 'workspace/didChangeConfiguration' implemented.
|
||||
|
||||
(github#29)
|
||||
|
||||
** Handle experimental/unknown server methods gracefully.
|
||||
|
||||
(github#39)
|
||||
|
||||
** Accept functions as entries in 'eglot-server-programs'.
|
||||
|
||||
'CONTACT' in the '(MAJOR-MODE . CONTACT)' association in
|
||||
'eglot-server-programs' can now be a function of no arguments
|
||||
producing any value previously valid for contact. Functions can be
|
||||
interactive on non-interactive.
|
||||
|
||||
(github#63)
|
||||
|
||||
** Improve completion to be snappier and don't hinder typing.
|
||||
|
||||
(github#61)
|
||||
|
||||
** Consider ':triggerCharacters' in company completion.
|
||||
|
||||
(github#80)
|
||||
|
||||
** Add support for LSP 'TextEdit' objects in completion.
|
||||
|
||||
** Prefer ccls over cquery for C/C++
|
||||
|
||||
(github#94)
|
||||
|
||||
** 'eglot-ignored-server-capabilites' is more user-friendly.
|
||||
|
||||
(github#126)
|
||||
|
||||
** Supports asynchronous connections.
|
||||
If a connection to the server is taking too long, is will continue in
|
||||
the background. A new defcustom 'eglot-sync-connect' controls this
|
||||
feature.
|
||||
|
||||
(github#68)
|
||||
|
||||
** The 'eglot-shutdown' command prompts for the server to shutdown.
|
||||
|
||||
(github#73)
|
||||
|
||||
** Add support for the Eclipse JDT language server.
|
||||
|
||||
(github#63)
|
||||
|
||||
** Add out-of-the-box support for Haskell, Kotlin, Go, Ocaml, R.
|
||||
|
||||
** Add the ability to move to LSP-precise columns.
|
||||
|
||||
Some servers like 'clangd' follow the UTF-16-based spec very closely
|
||||
here.
|
||||
|
||||
(github#124)
|
||||
|
||||
** Fix a potential security issue fontifying LSP doc.
|
||||
|
||||
(github#154)
|
||||
|
||||
** Fix many, many bugs
|
||||
|
||||
(github#44, github#48, github#54, github#58, github#64, github#74,
|
||||
github#81, github#82, github#86, github#87, github#83, github#93,
|
||||
github#100, github#115, github#120, github#121, github#126,
|
||||
github#138, github#144, github#158, github#160, github#167)
|
||||
|
||||
|
||||
* Changes in Eglot 1.1 (9/7/2018)
|
||||
|
||||
** Implement TCP autostart/autoconnect (and support Ruby's Solargraph)
|
||||
|
||||
The ':autoport' symbol in the server incovation is replaced
|
||||
dynamically by a local port believed to be vacant, so that the ensuing
|
||||
TCP connection finds a listening server.
|
||||
|
||||
** Eglot now depends on Emacs library 'jsonrpc.el'.
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
This file is part of GNU Emacs.
|
||||
|
||||
GNU Emacs is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
GNU Emacs is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
|
||||
Local Variables:
|
||||
bug-reference-bug-regexp: "\\(\\(github\\|bug\\)#\\([0-9]+\\)\\)"
|
||||
bug-reference-url-format: eglot--debbugs-or-github-bug-uri
|
||||
paragraph-separate: "[ ]"
|
||||
End:
|
||||
|
3
etc/NEWS
3
etc/NEWS
|
@ -3214,7 +3214,8 @@ Imenu now lists the members directly nested in R6RS Scheme libraries
|
|||
Emacs now comes with the Eglot package, which enhances various Emacs
|
||||
features, such as completion, documentation, error detection, etc.,
|
||||
based on data provided by language servers using the Language Server
|
||||
Protocol (LSP). See the new Info manual "(eglot) Top" for more.
|
||||
Protocol (LSP). See the new Info manual "(eglot) Top" for more. Also
|
||||
see etc/EGLOT-NEWS.
|
||||
|
||||
+++
|
||||
** use-package: Declarative package configuration.
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
;; Copyright (C) 2018-2023 Free Software Foundation, Inc.
|
||||
|
||||
;; Version: 1.11
|
||||
;; Version: 1.12
|
||||
;; Author: João Távora <joaotavora@gmail.com>
|
||||
;; Maintainer: João Távora <joaotavora@gmail.com>
|
||||
;; URL: https://github.com/joaotavora/eglot
|
||||
;; Keywords: convenience, languages
|
||||
;; Package-Requires: ((emacs "26.3") (jsonrpc "1.0.16") (flymake "1.2.1") (project "0.9.3") (xref "1.4.0") (eldoc "1.11.0") (seq "2.23") (external-completion "0.1"))
|
||||
;; Package-Requires: ((emacs "26.3") (jsonrpc "1.0.16") (flymake "1.2.1") (project "0.9.8") (xref "1.6.2") (eldoc "1.11.0") (seq "2.23") (external-completion "0.1"))
|
||||
|
||||
;; This is a GNU ELPA :core package. Avoid adding functionality
|
||||
;; that is not available in the version of Emacs recorded above or any
|
||||
|
|
Loading…
Add table
Reference in a new issue