Subject: bug#61350: Eglot over Tramp freezes with large project

From: Michael Albinus <[email-masked]>
Date: Tue, 28 Feb 2023 11:38:17 +0100

João Távora <[email-masked]> writes:

Hi João,

>> It is stable. Except in the case of large amount of data, which is
>> exceptional for Tramp usage.
>
> ...is it though? :-) Can a feature that hangs when presented with more
> data than usual (however one defines that) be considered stable?

Tramp supports ControlMaster since Emacs 24. Eglot is the first case
I've heard of problems. I don't deny it, but it seems to be premature to
me to disable the feature at all, falling back to an opt-in config.

>> It is essential. I have been beaten by many Tramp users to support it.
>
> I'd say something "essential" is something you can't live without.  But
> that doesn't seem to be the case here.

Ohh. You haven't seen how much Tramp has been blamed because it doesn't
support it out of the box.

> I could use Eglot over Tramp with decent performance (although this is
> a local-to-local in disguise).

Of course. Tramp allows you to opt-out, which is an accepted
configuration possibility. I don't say the way to opt-out is perfect
(it's currently an all-or-nothing), but this can be improved.

>> settings in ~/.ssh/config shall apply. And a new value, say `suppress',
>> shall suppress this feature even if enabled in ~/.ssh/config.
>>
>> I'll try to implement something along this line.
>
> Thanks.  I think that is a good start.  But can Eglot or the user
> somehow set 'suppress' for connections "motivated" by Eglot, i.e. M-x
> eglot in some remote file?  How?

Currently it's not possible. I'll investigate a way to disable
ControlMaster per process. By this, the main Tramp process and other
processes on the remote host could still profit from the performance
boost, and other processes (like Eglot) could opt-out.

> João

Best regards, Michael.