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

From: João Távora <[email-masked]>
Date: Mon, 27 Feb 2023 12:05:23 +0000

After a bit more investigation, I'm not sure this is a bug after all.
It might be.  My symptoms were the same as jeberger's but
my setup is slightly different (I'm not using zsh on the remote).

At least in my case, I was able to make Eglot/Tramp work successfully
by adding 'tramp-own-remote-path' to the 'tramp-remote-path' list.
If I do that, everything works as expected.

In my case I was using simply a /bin/sh on the remote server
and the user had a ~/bin directory that her ~/.profile adds to PATH.
But without the 'tramp-own-remote-path' fix, the shell used by Tramp
is not interactive and thus won't consider ~/.profile at all.

It's a bit unfortunate that in such a simple case, there is this hoop
to jump over.  But since at least it can be jumped over, I will add this
to the Eglot manual section on Tramp-related troubleshooting.

João

On Mon, Feb 27, 2023 at 11:07 AM João Távora <[email-masked]> wrote:
>
> Hello,
>
> I'm Eglot maintainer and, as of very recently, in analyzing bug#61350,
> also an Eglot-over-Tramp user.  So I can now reproduce this bug.
>
> I have the `jdtls` script installed in `~/bin/jdtls` of my remote host user's
> HOME, and I too suffer from this bug.  On the local host, I use
> zsh and shell-file-name is "/bin/zsh", although in Tramp-accessed
> buffers it is "/bin/sh".
>
> Bizarrely, this only happens sometimes.  When it works, it works perfectly
> and, as expected, the remote PATH of the remote host user is consulted.
>
> João

-- 
João Távora