LSP客户端编写指南

Ste*_*goo 8 language-server-protocol

我有一个个人编辑器,它实现了自己的代码完成“协议”,并且想切换到语言服务器协议以减轻自己的一些开发负担。然而我还不能完全理解有关客户端实现的LSP 文档。它与服务器实现混合在一起,无法找到两者之间明显的区别。

许多在线文档(包括有关 SO 的问题)都是围绕 VSCode 扩展展开的,我对这些扩展的了解为零并且没有帮助。

如果您能帮助我开始编写一个仅查询自动完成功能的简单客户端,我将不胜感激。我用 C++ 编写编辑器,并且非常感谢任何解释如何创建客户端的教程。我可以理解 Python、C、C#、Pure JavaScript、C++、PHP 和类似语言,因此我可以轻松遵循这些语言的任何教程。

如果有任何不清楚的地方,请告诉我,以便我进行解释(这是我在 LSP 中的第一篇文章:))

Ste*_*goo 4

马蒂当然引导我走向正确的方向。对我来说最困难的是理解请求/响应。LSP 有一个非常有用的页面,上面有一个不幸的名字(恕我直言),它误导了我,“检查”。事实证明,这是请求/响应的一个很好的例子。