Subject: Re: bug#72343: [PATCH] Fix eglot-server-programs for TeX modes

From: João Távora <[email-masked]>
Date: Wed, 7 Aug 2024 09:47:59 +0100

On Wed, Aug 7, 2024 at 8:02 AM Augusto Stoffel <[email-masked]> wrote:

> Sure, but how is that useful information for a language server?

Fairly useful. If someone tells me this upfront about some stream of
data they're about to send I know I can use a very simple parser.
Or I can reject it altogether if I don't like "lisp" for some reason.
If working on a language server multiplexer, for example
that information is possibly enough to know where to redirect the
didOpen.

> Relegating to users the task of debugging language ids doesn't sound
> very user-friendly...

It was you, not me, who talked about "ultimately the user". So ultimately
the user has control over things, always has had.

> (For the record, the only thing that's currently broken in the
> Eglot-Digestif interaction is the plain TeX case.)

Interesting, this is the X problem I was looking for.

> > 3. Ignoring my advice and sending "plain-tex" from Eglot anyway
> > (i.e. installing your patch without :language-id)
>
> You're clearly against this so it is not going to happen, but I hope I
> managed to explain to you why I would have done it.

Ultimately, I have to leave room for a pragmatic decision from
domain experts,  even if it violates the spec.  I'm just trying to
understand the angles and judge the probability of breakage
later on.

> > For the _other_ orthogonal problem, I suggest:
> >      (racket-mode . ("racket" "-l" "racket-langserver"))
> > -    ((tex-mode context-mode texinfo-mode bibtex-mode)
> > +    ((latex-mode (plain-tex-mode :language-id "tex") tex-mode
> > context-mode texinfo-mode bibtex-mode)
>
> Since you want to send "tex" language id for plain tex, the following
> suffices:
>
>     ((latex-mode tex-mode context-mode texinfo-mode bibtex-mode)

Again, I don't "want" to (see above for the reasons).  This patch
is concerned with the orthogonal requirement of keeping tex-mode
(and not removing it as you proposed)

So:

* please make up your mind, i.e. make a (possibly overriding) decision
  whether sending off-spec "plain-tex" for tex-mode is really what is
  needed.

* whatever your decision, keep 'tex-mode' in the list.

* help me test the patch below by checking that problem X is now
  solved and now new problem Z has popped up.

> >  (defun eglot--guess-contact (&optional interactive)
>
> I have no opinion on that one, except to say that it looks really
> complicated, although that's probably out of necessity.

OK, then don't bother giving an opinion, but how can it look
complicated?? It removes cyclomatic complexity (and lines of code)
from the program.

João