语言服务器协议

语言服务器协议(LSP)定义了编辑器或IDE与提供诸如自动完成、转到定义、查找所有引用等语言功能的语言服务器之间使用的协议。语言服务器索引格式(LSIF,发音类似"else if")的目标是在开发工具或Web用户界面中支持丰富的代码导航,而无需本地复制源代码。

为编程语言添加如自动完成、转到定义或悬停文档等功能需要大量工作。传统上,由于每个开发工具提供不同的API来实现相同的功能,这项工作需要为每个工具重复进行。

语言服务器协议(LSP)背后的思想是标准化此类服务器和开发工具如何通信的协议。这样,单个语言服务器可以在多个开发工具中重复使用,而这些工具则可以以最小的努力支持多种语言。

LSP对语言提供者和工具供应商都是双赢的!

语言服务器旨在提供语言特定的智能,并通过一个支持进程间通信的协议与开发工具通信。

工作原理

语言服务器作为一个独立的进程运行,开发工具使用语言协议通过JSON-RPC与服务器进行通信。以下是在常规编辑会话中工具和语言服务器通信的示例:

Pasted image 20230914004706.png

当用户使用不同的编程语言时,开发工具通常为每种编程语言启动一个语言服务器。以下示例展示了用户在处理Java和SASS文件的会话。

Pasted image 20230914004911.png

网络资源


本文作者:Maeiee

本文链接:语言服务器协议

版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!


喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!