I just started a new job where I have to ssh into a remote linux vm to work on a qt driven c++ project. I don’t really have a lot of leeway on what can be added to the remote environment, and I don’t think local development is possible. The vm has vim and qtcreator.

I’m from a Java background and I’m learning c++ for this role, while I’m comfortable in vim, I’d really like to have a tool that can give me autocomplete, jump to definition and linting. I know these things can be set up in neovim, but I asked about having that put on the box and was not given a good reaction.

I also know tools like vscode and possibly clion can be set up to do remote work via ssh. Does anyone have experience with this and suggestion on a good setup?

  • rollmagma@lemmy.world
    link
    fedilink
    arrow-up
    2
    arrow-down
    1
    ·
    2 days ago

    That doesn’t really solve his issue because what he wants depends on having servers (lint, lsp) running local to the codebase/machine. Anything with emacs will be a major pain unless it’s a really small project.

    • brian@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      5 hours ago

      not sure what you’re talking about but there’s two things here.

      TRAMP is great and you can run the lsp on the remote machine without installing anything assuming the linters and lsp are already installed. for comparison, vscode remote downloads and runs a shim thing when you connect.

      I use doom emacs at work for large codebases all the time and haven’t run into any problems. why does it only work for really small projects?

      • rollmagma@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        2 hours ago

        Oh and lsp-mode is super opinionated, it does a million things you don’t want or need, so I wouldn’t recommend that.

      • rollmagma@lemmy.world
        link
        fedilink
        arrow-up
        1
        ·
        2 hours ago

        Well, OP mentions he cannot install software on the machine, so I think that already blocks anything depending on lsp.

        My experience is mostly from doing linux kernel programming on remote baremetal machines. I use ccls + eglot locally and have fiddled a lot with tramp, which is really good when it does work, but also tends to trip over bad connections.

        I’ve also wrote all sorts of elisp hacks to be able to access the remote machine via tramp but have all code navigation commands apply to a local repository replica where the lsp server runs. My use case was similar to OP but the machines were not x86_64, so there wasn’t even any lsp ported.

        So yeah, my gut feeling having dealt with similar issues is that it’s not worth it, YMMV.