Hi, I’ve been banging my head against something and I figured I’d ask for help.

I open files over tramp and use a remote login machine to do that. Said login machine is shared by many people and thus I can’t run a language server on it. I’d like to use eglot but don’t want to run the language server on it.

I’ve been trying to either run the language server on a computer machine (another remote one) or on my local Mac (Mac would be preferable).

Has anyone managed to point a language server running on a local Mac to files over ssh?

  • TistelTech@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    is emacs running on your local lap/desktop? Or are you running it on a machine you ssh’ed into ? And that from that machine, you tramp into another?

    Tramp is just filling the buffer with under the hood calls to `scp` if the code is in you local machine’s buffer, I don’t see how the eglot would not work.

    If you are not running emacs on your local Mac, you should try to do so. So start emacs on your local Mac and try to do a multi-hop tramp:

    C-x C-f /ssh:bird@bastion|ssh:you@remotehost:/path
    

    the hops can be any level, but, more levels means more lag. I don’t have time to test my theory now. Might do so over the weekend.

    • Winter_Fall8260@alien.topOPB
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      Yes eMacs is running on my local laptop.

      If I try running eglot on a local file (on my laptop) all is well - it immediately finds the language server binary and runs it fine.

      However, if attempt it on a remote file (opened over tramp) it says it can’t find the binary and prompts me to point it at it. I could do that, but then the language server would start on that same machine and that’s a no go since it’s a shared login machine.

      So ideally I’d be able to tell it to use a language server running on my laptop but have been unable to get that to happen.

      • 7890yuiop@alien.topB
        link
        fedilink
        English
        arrow-up
        1
        ·
        1 year ago

        However, if attempt it on a remote file (opened over tramp) it says it can’t find the binary and prompts me to point it at it. I could do that, but then the language server would start on that same machine and that’s a no go since it’s a shared login machine.

        How would the local language server inspect a file which is on some other machine?

        You should start by establishing how that is going to work, and add that information to your question.

  • noooit@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    as long as those files are opened via tramp, there is no way to do that, unless you patch tramp.

    • SorryImaCanuck@alien.topB
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      This is what I do, I also use tramp pretty extensively but it’s the exception not the rule so subpar completion once in a while is fine with me

    • Winter_Fall8260@alien.topOPB
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      That would work. However, it would be a pretty dodgy thing to do from a security perspective. Since this is a work related query, I am pretty hesitant to do that.