V2EX 07月12日 14:57
[程序员] 一个现代化的、精心设计的 Language Server Protocol Python SDK
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了一个名为LSP Client的Python SDK,旨在通过调用LSP Server的功能进行代码静态分析。由于现有静态分析工具维护不足,作者选择基于LSP Server构建更全面的分析工具。该项目相较于现有方案,具有类型标注全面、功能更全面、自带能力检查、扩展更容易以及自带多进程等优势。作者计划添加MCP支持,使LLM Agent能够调用LSP Server,并欢迎用户试用和贡献代码。

💡 LSP Client是一个Python SDK,旨在利用LSP Server的功能进行代码静态分析,以解决现有静态分析工具维护不足的问题。

✅ 该项目使用微软官方的lsprotocol提供类型,确保类型标注的准确性和标准性,并且所有能力都声明为Protocol,方便用户约束和扩展。

🚀 LSP Client不仅支持goto definition和find references等基本功能,还支持LSP协议中规定的多种其他能力,并自带能力检查,避免运行时出现错误。

✨ 该项目采用清晰的代码架构,通过Mixin模式方便用户扩展,支持新的LSP Server,同时自带多进程,提高代码分析速度。

🔮 项目计划添加MCP支持,使LLM Agent能够调用LSP Server,并欢迎用户试用和贡献代码,共同完善其功能。

项目链接: https://github.com/observerw/lsp-client

各位同行们应该对 LSP 都不陌生,平常咱们使用 VSCode 写代码的时候基本少不了 LSP Server 的帮助。

我目前所做的工作有关 LLM 代码生成,所以不可避免地会需要对代码仓库进行一些静态分析,但我发现现有的静态分析工具的生存状况堪忧,基本上都没什么人维护了,即使那些还活着的项目,其功能也少得可怜。

相比之下,各个语言的 LSP Server 活的都非常好(应该是因为用的人也多),而且功能非常全面,看起来比那些半死不活的静态分析工具好太多了🤣。所以我就希望能够在代码中直接调用 LSP Server 的各个功能,来完成一些分析任务,说白了就是需要一个 LSP Server 的 Python SDK 。

我曾经尝试使用过 multilspy,一个微软开发人员所开发的 LSP Server SDK 。在简单场景下用着没什么问题;但当我想手动扩展一下它的功能时,就发现它的代码写的乱七八糟,让人难以有 follow up 的欲望(微软对于开源项目也太不上心了)。所以我干脆就另起炉灶起了一个新项目,实现一个更加现代化的 LSP Client 。相较于 multilspy ,该项目的优势体现在:

后续我计划在该项目中添加 MCP ( Model Context Protocol )支持,从而让 LLM Agent (比如 Cursor )也能够具有调用 LSP Server 的能力。

目前该项目还处于起步阶段,原生支持的 LSP Server 还不太多;但由于扩展起来比较容易,我预计应该能很快的补全这一短板。欢迎诸位试用,当然更欢迎诸位为本项目提供宝贵的 PR 完善其功能,非常感谢!

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

LSP Client 代码分析 Python SDK LSP Server
相关文章