emacs-devel
[Top][All Lists]
Advanced

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

Re: Renaming eglot -- or at least add an alias?


From: João Távora
Subject: Re: Renaming eglot -- or at least add an alias?
Date: Fri, 14 Oct 2022 10:45:20 +0100

I have to agree, it seems there are some here with partial or minimal
understanding of the job that Eglot does and has done for a significant
user base for some years now.  We should allow these people some time to
become acquainted with Eglot, ideally via its actual use, before moving
on to architectural discussions.

At this point, I'd like to point out again that a manual for Eglot **exists
already**.  Written by Eglot's author (i.e. me), it is being rewritten
freely by Eli in Texinfo format, and this will become the "official
manual" to be published as frequently as possible.

The Texinfo manual, which I have already reviewed, is written in a
structured and sober style typical of quality Emacs manuals.  However,
the existing MANUAL.md which I have already linked to (and do it again
at the end), contains more contextual and historical information which I
shall migrate to commentary in the eglot.el source file.

For example, this section, which is not fully reproduced in the future
TexInfo manual, could shed some light on some of the issues being
discussed:

"Eglot uses LSP to activate modern IDE features in Emacs. These features are
 provided via a number of auxiliary packages:

 * at-point documentation, via the ElDoc package;
 * on-the-fly diagnostic annotations with server-suggested fixes, via the Flymake package;
 * definition chasing/cross-referencing, via the Xref package;
 * in-file symbolic navigation, via the Imenu package;
 * completion (via Emacs built-in front-ends, Company, or other front-ends)

[...]

Experienced users will notice that these auxiliary facilities aren't
exactly new in Emacs.  For lack of adequate configuration, they are
sometimes inactive by default.  Traditionally, each major-mode tries to
configure a subset of them, at least partially.  Users commonly fill in
the gaps in their personal configurations.  In general, it is
time-consuming to achieve some kind of unifying consistency across
different packages in the same major mode or across different major
modes in the same package.

This is the main problem solved by LSP and Eglot: Eglot links up Emacs
packages to LSP features (also known as LSP capabilities) by temporarily
configuring the auxiliary packages while it is active in some buffer
(see Eglot-managed buffers).

Not all servers support the full set of LSP capability, but most of them
support enough to enable the basic set of features enumerated
above. Conversely, some servers offer capability for which an Emacs
equivalent package doesn't yet exist, and so Eglot can't link up the
two.

There are some cases where Eglot itself offers a user-facing facility
for a given capability. Examples are the refactoring commands
eglot-rename and eglot-code-action-organize-imports (see Commands)."

The full MANUAL.md: https://github.com/joaotavora/eglot/blob/master/MANUAL.md

reply via email to

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