From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?UTF-8?B?Sm/Do28gVMOhdm9yYQ==?= Newsgroups: gmane.emacs.devel Subject: Re: Renaming eglot -- or at least add an alias? Date: Fri, 14 Oct 2022 10:45:20 +0100 Message-ID: References: <83pmfdduix.fsf@gnu.org> <86wn9ji3ma.fsf@gmail.com> <831qrozx71.fsf@gnu.org> <83k05gvzsb.fsf@gnu.org> <838rlvv50n.fsf@gnu.org> <83v8oulstc.fsf@gnu.org> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="00000000000068cf5305eafb7840" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="33933"; mail-complaints-to="usenet@ciao.gmane.io" Cc: rms@gnu.org, emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Oct 14 11:45:25 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1ojHFs-0008df-Fb for ged-emacs-devel@m.gmane-mx.org; Fri, 14 Oct 2022 11:45:24 +0200 Original-Received: from localhost ([::1]:56888 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ojHFq-0002gi-Aj for ged-emacs-devel@m.gmane-mx.org; Fri, 14 Oct 2022 05:45:22 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:57576) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ojHEy-0001x6-8T for emacs-devel@gnu.org; Fri, 14 Oct 2022 05:44:28 -0400 Original-Received: from mail-oa1-x33.google.com ([2001:4860:4864:20::33]:36536) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ojHEt-0000fK-QS; Fri, 14 Oct 2022 05:44:27 -0400 Original-Received: by mail-oa1-x33.google.com with SMTP id 586e51a60fabf-136b5dd6655so5257657fac.3; Fri, 14 Oct 2022 02:44:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=N12OUhAEG3S/j9mghr+/V/P5kxg/cwqc8eDHEaUvIt0=; b=Dw8FZ8BpNg6ij/SE3lcJuXOgppiK69NJsNJ+gli+C6k9uZ7Gy479HzEK2WQjejh9cj 0gwdLGgemdHlZauL/oE4z/higtGHd+VyxAsc59VN8DxWCJ5liL8uWHJ7yyy8OHUYZy0B gVUWRgRIHLHbO9/0yYiURNBoea3Nwnaj4yQMd7cxhOKZsGr1Jw85+ShK8oCwF1qlJJ0B Uod3vx7Qf68mUrgwFnysZFlzV43VJrdwKCgbcoc09RTo5yh55XioZpWn+TlQdlPGJX5n 94PjnHtHGYc3B7DebTYrFK9b7Eu3i9HbSDQP/yXvxuBCkXbfJzVRQn6pSayv/bigQ+we hHJw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=N12OUhAEG3S/j9mghr+/V/P5kxg/cwqc8eDHEaUvIt0=; b=aI2fJA08ev04eUHbGHIWRHVU8tO7CBGaC5W5+fscOi6YIhhwmlkokTH1d+7rnP+lKc n4GCMpAFXkh+pZ56rqCskqV4Pg9h5Ijp4JwEZDGXfijZJPVZNxHAgX4am7pwGChUjeFK B7CeNM2HT8apfm9SoPdx4hmgw+v1KKDov6+vIJZF0Ijtb1gtOp++ldLaKetgbgikse42 jvB5H2gDfkCjTtfZf0zpqnLOGqXxkecAlxyg9D6WavwCW5aOTuFM8vspyxWnjaL6J1PZ QacgJ7tG085BrsUumAwQvCUAp63gltM5fro2EKIcuJ8QJvxU4xilymfM8Hi/zqjpV+hk 7TPg== X-Gm-Message-State: ACrzQf0h3e/72s+lbwRiBWeAx381AQN7YdKAys+w+ifniof/PeoWasJ0 3vWnLQgGs/gCv+adsIPnY7qE7Am9CE5EbPAC8XrBIhWyClU= X-Google-Smtp-Source: AMsMyM4FR61v0TLOIrkAecu4T/xfEIULG0Mf59MkS8id6mjpj7zShkGYeSFkNkIwcfNNHNYmnxr2wd/4o3DHGD67/zk= X-Received: by 2002:a05:6870:8326:b0:133:885:b57d with SMTP id p38-20020a056870832600b001330885b57dmr2202243oae.215.1665740661377; Fri, 14 Oct 2022 02:44:21 -0700 (PDT) In-Reply-To: <83v8oulstc.fsf@gnu.org> Received-SPF: pass client-ip=2001:4860:4864:20::33; envelope-from=joaotavora@gmail.com; helo=mail-oa1-x33.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:297710 Archived-At: --00000000000068cf5305eafb7840 Content-Type: text/plain; charset="UTF-8" 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 --00000000000068cf5305eafb7840 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
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.=C2=A0 We should allow these pe= ople some time to
become acquainted with Eglot, ideally via its actual u= se, before moving
on to architectural discussions.

At this point,= I'd like to point out again that a manual for Eglot **exists
alread= y**.=C2=A0 Written by Eglot's author (i.e. me), it is being rewrittenfreely by Eli in Texinfo format, and this will become the "official<= br>manual" to be published as frequently as possible.

The Texin= fo manual, which I have already reviewed, is written in a
structured an= d sober style typical of quality Emacs manuals.=C2=A0 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 f= uture
TexInfo manual, could shed some light on some of the issues b= eing
discussed:

"Eglot uses LSP to activate modern = IDE features in Emacs. These features are
=C2=A0provided via a number o= f auxiliary packages:

=C2=A0* at-point documentation, via the ElDoc = package;
=C2=A0* on-the-fly diagnostic annotations with server-suggested= fixes, via the Flymake package;
=C2=A0* definition chasing/cross-refere= ncing, via the Xref package;
=C2=A0* in-file symbolic navigation, via th= e Imenu package;
=C2=A0* completion (via Emacs built-in front-ends, Comp= any, or other front-ends)

[...]

Experienced users will notice= that these auxiliary facilities aren't
exactly new in Emacs.=C2=A0 = For lack of adequate configuration, they are
sometimes inactive by defau= lt.=C2=A0 Traditionally, each major-mode tries to
configure a subset of = them, at least partially.=C2=A0 Users commonly fill in
the gaps in their= personal configurations.=C2=A0 In general, it is
time-consuming to achi= eve some kind of unifying consistency across
different packages in the s= ame major mode or across different major
modes in the same package.
<= br>This is the main problem solved by LSP and Eglot: Eglot links up Emacspackages to LSP features (also known as LSP capabilities) by temporarily<= br>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,=C2=A0and s= o Eglot can't link up the
two.

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

The full MANUAL.md: https://github.com/jo= aotavora/eglot/blob/master/MANUAL.md --00000000000068cf5305eafb7840--