深入分析 LSP 协议

深入分析 LSP 协议

折腾 lsp-bridge 这两年,学到很多新的知识,今天分享了一些 LSP Client 实现的一些深坑,互联网上基本没有 LSP 协议分析的文章, 希望上面的内容可以帮助同是开发 LSP Client 的同学节省一些时间。

不知道LSP协议是什么的同学,可以看我以前写的一些入门文章:

21 个赞

话说我一直没搞明白workspace/didChangeConfigurationworkspace/configuration的必要性。

能出这么多稀奇古怪的server,只能说lsp协议也是一个大坑。

另外学到了一招:让反编译出来的代码跟当前项目共享一个server,赞!

1 个赞

configuration 相关的消息一定要理的, 如果不回应, 很多 LSP server 就会罢工, 不继续往下走了。

但是 configuration 相关的协议要怎么回应, LSP 标准规范并没有说, 基本上是 LSP server 自己有一套实现逻辑, LSP Client 要去做兼容适配。

虽然LSP协议有很多坑, 但是已经解决了很多问题了, 放在十几年前, 没有LSP协议, 很难有任何一个项目可以支持这么多编程语言。

研究了一下configuration相关的协议,确实有点不清楚,好多客户端实现者/server实现者提出过相关的问题,不过感觉也快统一意见了。

lsp的存在确实还是利大于弊,看它继续进化吧。

1 个赞