Neovim LSP 的工作原理
基本概念
LSP(Language Server Protocol)可以理解成是一個"語言助手"。每種編程語言都有自己的"語言助手"(比如 TypeScript 的 tsserver),這些助手能告訴你:
- 哪寫錯了(語法錯誤)
- 哪能跳轉(方法定義,引用)
- 哪可以補全(自動提示)
- 哪能重命名(變量重命名)
- …
這些助手不是直接寫死在編輯器中的,而是通過 LSP 這個 翻譯協議
和編輯器進行溝通,所以像 VSCode、Neovim等編輯器都可以使用他。
Ps:Neovim 如果配置得當,甚至比 VsCode 好用
架構組成
1)客戶端:Neovim
Neovim 本身就是一個 LSP 客戶端,可以通過插件實現于任意符合 LSP 協議的服務器進進行通訊。
2)語言服務器
語言服務器是獨立的進程,專注于提供某種語言的語義服務