lsp-protocol是什麼?emacs-ccls如何遷移?

收到一個issue https://github.com/MaskRay/emacs-ccls/issues/89

“其他clients都遷移好了,請你也遷移(乖乖就範)吧。” 感覺他們下一步要在lsp-mode.el裏刪掉什麼東西,沒有遷移的包可能就損壞了。

emacs-ccls工作穩定。我已經好幾個月沒有調教過Emacs了,現在對elisp和lsp-mode的認知基本歸零了。所以到底需要改什麼東西?(如果有好心人能直接提交pull request就最好了🤣)

(我還勉強記得的是edebug,但在doom-emacs裏實在不知道如何使用。

C-u C-M-x 在某個函數上breakpoint,之後呼叫這個函數時就會停下來。但doom-emacs裏似乎edebug時也是evil-state,好像隨便按錯鍵整個debug session就消失了,非常不便。(平常都是寫C++,習慣了:rr record something; rr replay -d cgdb 裏按錯了 n s 也能 rn 回退))

1 个赞

为啥client改代码server还要跟着改?看起来是个lsp-mode相关的修改,eglot不受影响吧?

其他client的PR,貌似不需要特别大的改动

我大概明白是什麼了,用lsp-interface定義schema,用elisp symbol的accessors代替gethash。

(gethash "start" range) -> (lsp:range-start range)
((&hash "start") range) -> ((&Range :start) range)

yyoncho說:

A good test if everything works is setting lsp-use-plists to t and recompiling lsp related projects.

1 个赞