c++项目源码挂载到docker上之后,如何提供lsp支持?

目前在开发一个c++/cuda项目。由于项目编译的依赖项太多,本机编译十分麻烦,我拉了一个docker,并将项目源码所在路径挂载到docker上。编译生成的compile_commands.json使用的是docker内的路径,请问此时如何为项目提供lsp支持呢?

lsp-dockerdocker over tramp看起来十分符合我的需求,然而还在开发中。

docker tramp看起来也是一个可行的方案,不过简单尝试了一下,还没有让lsp正常工作起来。

请问大家有什么推荐的解决方案吗?

在 builder container 里装好 lsp server ,然后应该可以通过 tramp 连上去。

3 个赞

谢谢!我去尝试一下,看来是我想得太复杂了 :rofl:

我直接把路径 prefix 改了,绝大部分 LSP 功能是正常的,可能有小部分 lib 和 docker 不一样不正常,但我觉得不影响

最终通过docker-tramp和lsp remote解决了这个问题:

  1. 安装docker-tramp
  2. 使用docker-tramp将docker中的项目添加到lsp的workspace中
  3. 在docker中安装language server
  4. 根据Remote - LSP Mode - LSP support for Emacs ,注册docker中的language server

最后直接在lsp中打开docker内的项目,就可以正常使用lsp了。

1 个赞