我正在尝试配置lsp模式以处理通过TRAMP打开的远程文件。该文档并没有真正讨论这个问题,但是根据我从各种搜索中收集到的信息,我将这些问题拼凑在一起:
(use-package lsp-mode
:commands lsp
:straight t
:config
(progn
(add-hook 'prog-mode-hook #'lsp)
(lsp-register-client
(make-lsp-client :new-connection (lsp-tramp-connection
"/path/to/clangd")
:major-modes '(c-mode c++-mode)
:remote? t
:server-id 'clangd-remote))))
(use-package lsp-ui
:commands lsp-ui-mode
:straight t)
(use-package company-lsp
:commands company-lsp
:straight t)
但是在打开文件时,lsp-mode报告说clangd已退出:
LSP :: clangd-remote has exited (exited abnormally with code 127)
Server clangd-remote:32027 status:starting exited with status exit. Do
you want to restart it? (y or n) n
我猜想clangd并没有真正开始,但是我不知道出了什么问题。我的配置是否正确? lsp-mode是否可以启用任何调试输出?
答案 0 :(得分:0)
这是我的配置,它看起来很有效(我也在移动我的第一步)
(use-package lsp-mode
:hook ((prog-mode . lsp-deferred))
:commands (lsp lsp-deferred)
:config
(progn
(lsp-register-client
(make-lsp-client :new-connection (lsp-tramp-connection "clangd")
:major-modes '(c-mode c++-mode)
:remote? t
:server-id 'clangd-remote))))
这个想法是将 emacs 注册为 LSP 的客户端。我通过 TRAMP 连接到安装了 clangd 的 WSL2。
我的真正目标是设置一个 LSP 来编辑 PHP 代码,利用 Serenata 或其他任何东西。但是我仍然没有弄清楚如何同时注册多个客户端,所以任何建议将不胜感激。
是的,文档肯定应该改进,或者至少他们应该添加一个论坛来留下一些问题。