Subject: bug#61748: 27.2; Eglot should use shell-file-name when launching the language server for a remote file

From: Michael Albinus <[email-masked]>
Date: Thu, 02 Mar 2023 10:14:17 +0100

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

Hi João,

>> >> I don't expect a user to solve it. And a user shouldn't expect that
>> >> changing a variable is sufficient.
>> >
>> > I respectfully but diametrically disagree here.
>> >
>> > Here's an untested patch that could solve this.  It can probably
>> > be made smarter by only invalidating the cache when a change
>> > to the variable is detected.
>>
>> Hmm. It will delay startup of remote processes, if tramp-remote-path
>> doesn't change for different processes. Perhaps it is negligable, but at
>> least for slow connections people will be hit by this.
>>
>> I'll play with it. Perhaps there is a smarter version of it, as you say.
>
> Here's another still untested but smarter patch.  Caches fully
> on until user messes with tramp-remote-path, else immediately
> flushed.

Just flushing the connection property "remote-path" is not sufficient I
believe. You still must cleanup the process. This is because the remote
PATH environment is set when starting the process.

And I fail to understand, why connection-local variables don't serve the
purpose. They are described wrt to the remote path in

--8<---------------cut here---------------start------------->8---
(info "(tramp) Remote programs")
--8<---------------cut here---------------end--------------->8---

If this isn't sufficient, we must improve this, instead of introducing
another mechanism. And remember, remote processes are not designed to be
as flexible as local processes, where you could simply call
(setenv "PATH" ...)

Best regards, Michael.