unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Stefan Monnier <monnier@iro.umontreal.ca>
To: "João Távora" <joaotavora@gmail.com>
Cc: Arash Esbati <arash@gnu.org>,  Eli Zaretskii <eliz@gnu.org>,
	 Tim Cross <theophilusx@gmail.com>,
	 emacs-devel <emacs-devel@gnu.org>
Subject: Re: Making `eglot-server-programs' a custom variable?
Date: Thu, 10 Nov 2022 12:43:09 -0500	[thread overview]
Message-ID: <jwvcz9uoh1o.fsf-monnier+emacs@gnu.org> (raw)
In-Reply-To: <878rkial85.fsf@gmail.com> ("João Távora"'s message of "Thu, 10 Nov 2022 15:21:46 +0000")

João Távora [2022-11-10 15:21:46] wrote:
> Stefan Monnier <monnier@iro.umontreal.ca> writes:
>>> Arash, I think your suggestion of recommending `with-eval-after-load`
>>> is pertinent and should be added to the manual.
>> I don't have an objection to that but I consider uses of
>> `with-eval-after-load` as hints that maybe we should do things
>> differently.
> Why?  This is in a user's init file.  I can more or less see that
> argument for inter-library dependencies.  But here, w-e-a-load is
> exactly what's needed.  I use it all the time in my config.

I have 4 uses of it in my ~75kB init file.

It's a great tool, but still one where I consider that imposing it on
the user is a sign of a deficiency (a bit like advice, tho much less
severely so).

That doesn't mean we have to find a way to avoid its use, just that it
would be nice to find such a way.

>>> Eli, even though we provide a healthy dose of built-in server invocations
>>> in that variable, we can't and shouldn't aim at being exhaustive.
>> Seeing the wild number of LSP servers available for some languages, I'd
>> agree, sadly.
> I don't think this is sad :-)

In my experience it's usually a reflection of the fact the LSP protocol
leaves a bit too much control to the server, which should focus on
providing "impartial info" about the language, leaving more of the
choices of how to use that info somewhere in the hands of the end user.

"Choose an LSP server" seems to me like a very poor way to customize the
behavior of the server.

IOW the design of the LSP protocol is not "Emacs-y" enough :-)

>> Maybe to reduce the problem we should allow multiple entries per
>> major mode and use the first that works, without needing to go through
>> `eglot-alternatives`?
>
> Again, why?  Why add more semantics to an already complicated variable
> when the functional eglot-alternatives plugin works fine?  Furthermore,
> I'd like to this particular configuration for a future
> multiple-simultaneous-server-in-one-mode idea.

I'm just suggesting directions.  I don't claim they're the right answer.
My impression is that this variable is currently both "too complex" and
"not flexible enough".  Don't get me wrong, it's good enough for now.

But no, I don't have a good replacement to suggest.  My gut just tells
me that there is a better arrangement.

>> [ I'll note in passing that it's common to use strings for TCP port
>>   numbers, especially once they are standardized enough to appear in
>>   /etc/services, so maybe the syntax for that TCP connection should
>>   replace (HOST PORT ...) with something like (:tcp HOST PORT ...).  ]
> If you can make that change without breaking backward compatibility, I
> have no objections.

I think currently an entry cannot start with a keyword, so te syntax
I propose wouldn't break compatibility.  But it would be different in
style from what's there currently, making it more complex for the user.
So I think it would only make sense if/when we make other changes at the
same time.


        Stefan




  reply	other threads:[~2022-11-10 17:43 UTC|newest]

Thread overview: 78+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-09 20:25 Making `eglot-server-programs' a custom variable? Arash Esbati
2022-11-09 20:49 ` Philip Kaludercic
2022-11-09 22:07   ` Arash Esbati
2022-11-10 17:47     ` Philip Kaludercic
2022-11-10 17:56       ` Stefan Monnier
2022-11-10 18:10         ` Philip Kaludercic
2022-11-10 18:29           ` Stefan Monnier
2022-11-10 19:36             ` Philip Kaludercic
2022-11-12  3:47       ` Jim Porter
2022-11-12  5:16         ` chad
2022-11-12  7:26           ` Philip Kaludercic
2022-11-12  7:34         ` Philip Kaludercic
2022-11-12  7:58         ` Eli Zaretskii
2022-11-12  8:03           ` Philip Kaludercic
2022-11-12  8:25             ` Eli Zaretskii
2022-11-12  8:45               ` Philip Kaludercic
2022-11-12  9:01                 ` Eli Zaretskii
2022-11-12  9:40                   ` Philip Kaludercic
2022-11-12 10:02                     ` Eli Zaretskii
2022-11-12 13:46                       ` Philip Kaludercic
2022-11-12 14:30                         ` Eli Zaretskii
2022-11-13  0:20                           ` Philip Kaludercic
2022-11-13  6:39                             ` Eli Zaretskii
2022-11-13  7:11                               ` Philip Kaludercic
2022-11-13  7:43                                 ` Eli Zaretskii
2022-11-15 17:50                                   ` Philip Kaludercic
2022-11-15 18:15                                     ` Eli Zaretskii
2022-11-16 13:05                                       ` Philip Kaludercic
2022-11-16 13:44                                         ` Eli Zaretskii
2022-11-16 14:12                                           ` Philip Kaludercic
2022-11-16 14:51                                             ` Eli Zaretskii
2022-11-16 17:05                                               ` Philip Kaludercic
2022-11-10  6:36 ` Eli Zaretskii
2022-11-10  7:56   ` Tim Cross
2022-11-10  8:24     ` Eli Zaretskii
2022-11-10  9:34       ` Tim Cross
2022-11-10 11:16         ` Eli Zaretskii
2022-11-10 13:59           ` Tim Cross
2022-11-10  9:18   ` Arash Esbati
2022-11-10  9:34     ` Eli Zaretskii
2022-11-10 10:25       ` João Távora
2022-11-10 17:04         ` Eli Zaretskii
2022-11-10 17:10         ` Eli Zaretskii
2022-11-10 21:45           ` João Távora
2022-11-11  6:12             ` Yuri Khan
2022-11-11  9:09               ` João Távora
2022-11-12  2:34               ` Brian Cully via Emacs development discussions.
2022-11-12 16:22                 ` Michael Albinus
2022-11-11  7:04             ` Eli Zaretskii
2022-11-11  9:12               ` João Távora
2022-11-11 11:53                 ` Eli Zaretskii
2022-11-12 14:44           ` Arash Esbati
2022-11-12 14:49             ` Eli Zaretskii
2022-11-12 14:58               ` Arash Esbati
2022-11-10 21:28     ` Augusto Stoffel
2022-11-11 10:05       ` Arash Esbati
2022-11-11 12:05         ` Eli Zaretskii
2022-11-11 12:22           ` Arash Esbati
2022-11-11 12:33             ` Eli Zaretskii
2022-11-11 13:26               ` Augusto Stoffel
2022-11-11 13:48               ` Arash Esbati
2022-11-11 13:54                 ` Eli Zaretskii
2022-11-10 10:15 ` João Távora
2022-11-10 11:23   ` Eli Zaretskii
2022-11-10 12:07     ` João Távora
2022-11-10 15:19       ` Eli Zaretskii
2022-11-10 15:35         ` Dmitry Gutov
2022-11-10 16:50           ` Eli Zaretskii
2022-11-10 18:22             ` Dmitry Gutov
2022-11-10 18:31               ` Eli Zaretskii
2022-11-10 15:38         ` João Távora
2022-11-10 16:52           ` Eli Zaretskii
2022-11-10 17:08           ` Eli Zaretskii
2022-11-10 21:13             ` João Távora
2022-11-10 13:57   ` Stefan Monnier
2022-11-10 15:21     ` João Távora
2022-11-10 17:43       ` Stefan Monnier [this message]
2022-11-10 22:10         ` João Távora

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=jwvcz9uoh1o.fsf-monnier+emacs@gnu.org \
    --to=monnier@iro.umontreal.ca \
    --cc=arash@gnu.org \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=joaotavora@gmail.com \
    --cc=theophilusx@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).