If you think you have found a bug, we want to hear about it. Before reporting a bug, keep in mind that interaction with language servers represents a large quantity of unknown variables. Therefore, it is generally both difficult and absolutely essential that the maintainers reproduce bugs exactly as they happened to you, the user.
To report an Eglot bug, send e-mail to bug-gnu-emacs@gnu.org.
To understand how to write this email, get acquainted with Emacs’s bug reporting guidelines (see Bugs in GNU Emacs Manual). Then, follow this Eglot-specific checklist:
debug-on-error
via
M-x toggle-debug-on-error. This normally produces a backtrace
of the error that should also be attached to the bug report.
++
or Python servers, as these are very easy to install.
We welcome bug reports about all Eglot versions, but it is helpful to first check if the problem isn’t already fixed in the latest version (see Getting the latest version).
It’s also essential to include the version of ELPA packages that are explicitly or implicitly loaded. The optional but popular Company or Markdown packages are distributed as GNU ELPA packages, not to mention Eglot itself in some situations. Some major modes (Go, Rust, etc.) are provided by ELPA packages. It’s sometimes easy to miss these, since they are usually implicitly loaded when visiting a file in that language.
ELPA packages usually live in ~/.emacs.d/elpa
(or what is in
package-user-dir
). Including a listing of files in that
directory is a way to tell the maintainers about ELPA package
versions.
emacs -Q -f package-initialize
starts
Emacs with no configuration and initializes the ELPA packages. A very
minimal .emacs initialization file (10 lines or less) is also
acceptable and good means to describe changes to variables.
There is usually no need to include require
statements in the
recipe, as Eglot’s functionality uses autoloads.
Likewise, there is rarely the need to use things like
use-package
or eglot-ensure
. This just makes the recipe
harder to follow. Prefer setting variables with setq
and
adding to hooks with add-hook
. Prefer starting Eglot with
M-x eglot
.
Please keep in mind that some problems reported against Eglot may actually be bugs in the language server or the Emacs feature/package that used Eglot to communicate with the language server. Eglot is, in many cases, just a frontend to that functionality.