[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-microsoft--multilspy":3,"tool-microsoft--multilspy":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":81,"owner_twitter":82,"owner_website":83,"owner_url":84,"languages":85,"stars":90,"forks":91,"last_commit_at":92,"license":93,"difficulty_score":23,"env_os":94,"env_gpu":95,"env_ram":95,"env_deps":96,"category_tags":100,"github_topics":101,"view_count":23,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":121,"updated_at":122,"faqs":123,"releases":159},3952,"microsoft\u002Fmultilspy","multilspy","multilspy is a lsp client library in Python intended to be used to build applications around language servers.","multilspy 是一个专为 Python 开发者打造的跨平台客户端库，旨在简化基于语言服务器协议（LSP）的应用构建过程。它充当了应用程序与各类语言服务器之间的桥梁，让用户能够轻松获取代码的静态分析结果，例如查找函数定义、追踪调用关系、提供类型感知的代码补全建议以及查看符号悬停信息等。\n\n在开发涉及代码理解或生成的工具时，直接对接不同语言的服务器往往面临环境配置复杂、通信协议繁琐以及参数调整困难等挑战。multilspy 有效解决了这些痛点，它能自动处理特定平台服务器二进制文件的下载与生命周期管理，封装底层的 JSON-RPC 通信细节，并智能维护针对不同语言和服务器的配置参数。用户只需调用简洁统一的 API，即可屏蔽底层差异，专注于上层业务逻辑。\n\n该工具特别适合需要集成代码静态分析能力的研究人员和软件工程师，尤其是那些致力于开发代码大模型辅助工具、静态分析插件或智能编程助手的团队。其核心亮点在于“一次编写，多语言通用”的设计理念：依托 LSP 的语言无关特性，multilspy 提供了统一的接口来支持多种编程语言的分析需求，并且架构易于扩展，可随需接入更多新的语言服务器，极大地","multilspy 是一个专为 Python 开发者打造的跨平台客户端库，旨在简化基于语言服务器协议（LSP）的应用构建过程。它充当了应用程序与各类语言服务器之间的桥梁，让用户能够轻松获取代码的静态分析结果，例如查找函数定义、追踪调用关系、提供类型感知的代码补全建议以及查看符号悬停信息等。\n\n在开发涉及代码理解或生成的工具时，直接对接不同语言的服务器往往面临环境配置复杂、通信协议繁琐以及参数调整困难等挑战。multilspy 有效解决了这些痛点，它能自动处理特定平台服务器二进制文件的下载与生命周期管理，封装底层的 JSON-RPC 通信细节，并智能维护针对不同语言和服务器的配置参数。用户只需调用简洁统一的 API，即可屏蔽底层差异，专注于上层业务逻辑。\n\n该工具特别适合需要集成代码静态分析能力的研究人员和软件工程师，尤其是那些致力于开发代码大模型辅助工具、静态分析插件或智能编程助手的团队。其核心亮点在于“一次编写，多语言通用”的设计理念：依托 LSP 的语言无关特性，multilspy 提供了统一的接口来支持多种编程语言的分析需求，并且架构易于扩展，可随需接入更多新的语言服务器，极大地提升了开发效率与系统的可维护性。","[![PyPI - Version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fmultilspy)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fmultilspy\u002F)\n# Multilspy: LSP client library in Python to build applications around language servers\n\n## Introduction\nThis repository hosts `multilspy`, a library developed as part of research conducted for NeruIPS 2023 paper titled [\"Monitor-Guided Decoding of Code LMs with Static Analysis of Repository Context\"](https:\u002F\u002Fneurips.cc\u002Fvirtual\u002F2023\u002Fposter\u002F70362) ([\"Guiding Language Models of Code with Global Context using Monitors\"](https:\u002F\u002Farxiv.org\u002Fabs\u002F2306.10763) on Arxiv). The paper introduces Monitor-Guided Decoding (MGD) for code generation using Language Models, where a monitor uses static analysis to guide the decoding, ensuring that the generated code follows various correctness properties, like absence of hallucinated symbol names, valid order of method calls, etc. For further details about Monitor-Guided Decoding, please refer to the paper and GitHub repository [microsoft\u002Fmonitors4codegen](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmonitors4codegen).\n\n`multilspy` is a cross-platform library designed to simplify the process of creating language server clients to query and obtain results of various static analyses from a wide variety of language servers that communicate over the [Language Server Protocol](https:\u002F\u002Fmicrosoft.github.io\u002Flanguage-server-protocol\u002F). It is easily extensible to support any [language that has a Language Server](https:\u002F\u002Fmicrosoft.github.io\u002Flanguage-server-protocol\u002Fimplementors\u002Fservers\u002F) and we aim to continuously add support for more language servers and languages.\n\n[Language servers]((https:\u002F\u002Fmicrosoft.github.io\u002Flanguage-server-protocol\u002Foverviews\u002Flsp\u002Foverview\u002F)) are tools that perform a variety of static analyses on code repositories and provide useful information such as type-directed code completion suggestions, symbol definition locations, symbol references, etc., over the [Language Server Protocol (LSP)](https:\u002F\u002Fmicrosoft.github.io\u002Flanguage-server-protocol\u002Foverviews\u002Flsp\u002Foverview\u002F). Since LSP is language-agnostic, `multilspy` can provide the results for static analyses of code in different languages over a common interface.\n\n`multilspy` intends to ease the process of using language servers, by handling various steps in using a language server:\n* Automatically handling the download of platform-specific server binaries, and setup\u002Fteardown of language servers\n* Handling JSON-RPC based communication between the client and the server\n* Maintaining and passing hand-tuned server and language specific configuration parameters\n* Providing a simple API to the user, while executing all steps of server-specific protocol steps to execute the query\u002Frequest.\n\nSome of the analysis results that `multilspy` can provide are:\n- Finding the definition of a function or a class ([textDocument\u002Fdefinition](https:\u002F\u002Fmicrosoft.github.io\u002Flanguage-server-protocol\u002Fspecifications\u002Flsp\u002F3.17\u002Fspecification\u002F#textDocument_definition))\n- Finding the callers of a function or the instantiations of a class ([textDocument\u002Freferences](https:\u002F\u002Fmicrosoft.github.io\u002Flanguage-server-protocol\u002Fspecifications\u002Flsp\u002F3.17\u002Fspecification\u002F#textDocument_references))\n- Providing type-based dereference completions ([textDocument\u002Fcompletion](https:\u002F\u002Fmicrosoft.github.io\u002Flanguage-server-protocol\u002Fspecifications\u002Flsp\u002F3.17\u002Fspecification\u002F#textDocument_completion))\n- Getting information displayed when hovering over symbols, like method signature ([textDocument\u002Fhover](https:\u002F\u002Fmicrosoft.github.io\u002Flanguage-server-protocol\u002Fspecifications\u002Flsp\u002F3.17\u002Fspecification\u002F#textDocument_hover))\n- Getting list\u002Ftree of all symbols defined in a given file, along with symbol type like class, method, etc. ([textDocument\u002FdocumentSymbol](https:\u002F\u002Fmicrosoft.github.io\u002Flanguage-server-protocol\u002Fspecifications\u002Flsp\u002F3.17\u002Fspecification\u002F#textDocument_documentSymbol))\n- Please create an issue\u002FPR to add any other LSP request not listed above\n\n## Installation\nIt is ideal to create a new virtual environment with `python>=3.10`. To create a virtual environment using conda and activate it:\n```\nconda create -n multilspy_env python=3.10\nconda activate multilspy_env\n```\nFurther details and instructions on creation of Python virtual environments can be found in the [official documentation](https:\u002F\u002Fdocs.python.org\u002F3\u002Flibrary\u002Fvenv.html). Further, we also refer users to [Miniconda](https:\u002F\u002Fdocs.conda.io\u002Fen\u002Flatest\u002Fminiconda.html), as an alternative to the above steps for creation of the virtual environment.\n\nTo install `multilspy` using pip, execute the following command:\n```\npip install multilspy\n```\n\n## Supported Languages\n`multilspy` currently supports the following languages:\n| Code Language | Language Server |\n| --- | --- | \n| java | Eclipse JDTLS |\n| python | jedi-language-server |\n| rust | Rust Analyzer |\n| csharp | OmniSharp \u002F RazorSharp |\n| typescript | TypeScriptLanguageServer |\n| javascript | TypeScriptLanguageServer |\n| go | gopls |\n| dart | Dart |\n| ruby | Solargraph |\n| kotlin | KotlinLanguageServer |\n\n\n## Usage\nExample usage:\n```python\nfrom multilspy import SyncLanguageServer\nfrom multilspy.multilspy_config import MultilspyConfig\nfrom multilspy.multilspy_logger import MultilspyLogger\n...\nconfig = MultilspyConfig.from_dict({\"code_language\": \"java\"}) # Also supports \"python\", \"rust\", \"csharp\", \"typescript\", \"javascript\", \"go\", \"dart\", \"ruby\"\nlogger = MultilspyLogger()\nlsp = SyncLanguageServer.create(config, logger, \"\u002Fabs\u002Fpath\u002Fto\u002Fproject\u002Froot\u002F\")\nwith lsp.start_server():\n    result = lsp.request_definition(\n        \"relative\u002Fpath\u002Fto\u002Fcode_file.java\", # Filename of location where request is being made\n        163, # line number of symbol for which request is being made\n        4 # column number of symbol for which request is being made\n    )\n    result2 = lsp.request_completions(\n        ...\n    )\n    result3 = lsp.request_references(\n        ...\n    )\n    result4 = lsp.request_document_symbols(\n        ...\n    )\n    result5 = lsp.request_hover(\n        ...\n    )\n    ...\n```\n\n`multilspy` also provides an asyncio based API which can be used in async contexts. Example usage (asyncio):\n```python\nfrom multilspy import LanguageServer\n...\nlsp = LanguageServer.create(...)\nasync with lsp.start_server():\n    result = await lsp.request_definition(\n        ...\n    )\n    ...\n```\n\nThe file [src\u002Fmultilspy\u002Flanguage_server.py](src\u002Fmultilspy\u002Flanguage_server.py) provides the `multilspy` API. Several tests for `multilspy` present under [tests\u002Fmultilspy\u002F](tests\u002Fmultilspy\u002F) provide detailed usage examples for `multilspy`. The tests can be executed by running:\n```bash\npytest tests\u002Fmultilspy\n```\n\n## Use of `multilspy` in AI4Code Scenarios like Monitor-Guided Decoding\n`multilspy` provides all the features that language-server-protocol provides to IDEs like VSCode. It is useful to develop toolsets that can interface with AI systems like Large Language Models (LLM). \n### [Monitor-Guided Decoding](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmonitors4codegen)\nOne such usecase is Monitor-Guided Decoding, where `multilspy` is used to find results of static analyses like type-directed completions, to guide the token-by-token generation of code using an LLM, ensuring that all generated identifier\u002Fmethod names are valid in the context of the repository, significantly boosting the compilability of generated code. MGD also demonstrates use of `multilspy` to create monitors that ensure all function calls in LLM generated code receive correct number of arguments, and that functions of an object are called in the right order following a protocol (like not calling \"read\" before \"open\" on a file object).\n\n### Multilspy in other usecases\n* [\"Fix the Tests: Augmenting LLMs to Repair Test Cases with Static Collector and Neural Reranker,\" in 2024 IEEE 35th International Symposium on Software Reliability Engineering (ISSRE)](https:\u002F\u002Fgithub.com\u002FSQUARE-RG\u002FSynTeR)\n* [Tutorial on obtaining python completions with multilspy](https:\u002F\u002Fmedium.com\u002F@techhara\u002Fpython-obtain-completions-3db4d2479b82)\n* Gathering and utilizing repository-wide context for repository-level coding agents\n\n## Frequently Asked Questions (FAQ)\n### ```asyncio``` related Runtime error when executing the tests for MGD\nIf you get the following error:\n```\nRuntimeError: Task \u003CTask pending name='Task-2' coro=\u003C_AsyncGeneratorContextManager.__aenter__() running at\n    python3.8\u002Fcontextlib.py:171> cb=[_chain_future.\u003Clocals>._call_set_state() at\n    python3.8\u002Fasyncio\u002Ffutures.py:367]> got Future \u003CFuture pending> attached to a different loop python3.8\u002Fasyncio\u002Flocks.py:309: RuntimeError\n```\n\nPlease ensure that you create a new environment with Python ```>=3.10```. For further details, please have a look at the [StackOverflow Discussion](https:\u002F\u002Fstackoverflow.com\u002Fquestions\u002F73599594\u002Fasyncio-works-in-python-3-10-but-not-in-python-3-8).\n\n## Citing Multilspy\nIf you're using Multilspy in your research or applications, please cite using this BibTeX:\n```\n@inproceedings{NEURIPS2023_662b1774,\n author = {Agrawal, Lakshya A and Kanade, Aditya and Goyal, Navin and Lahiri, Shuvendu and Rajamani, Sriram},\n booktitle = {Advances in Neural Information Processing Systems},\n editor = {A. Oh and T. Naumann and A. Globerson and K. Saenko and M. Hardt and S. Levine},\n pages = {32270--32298},\n publisher = {Curran Associates, Inc.},\n title = {Monitor-Guided Decoding of Code LMs with Static Analysis of Repository Context},\n url = {https:\u002F\u002Fproceedings.neurips.cc\u002Fpaper_files\u002Fpaper\u002F2023\u002Ffile\u002F662b1774ba8845fc1fa3d1fc0177ceeb-Paper-Conference.pdf},\n volume = {36},\n year = {2023}\n}\n```\n\n## Contributing\n\nThis project welcomes contributions and suggestions.  Most contributions require you to agree to a\nContributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us\nthe rights to use your contribution. For details, visit https:\u002F\u002Fcla.opensource.microsoft.com.\n\nWhen you submit a pull request, a CLA bot will automatically determine whether you need to provide\na CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions\nprovided by the bot. You will only need to do this once across all repos using our CLA.\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https:\u002F\u002Fopensource.microsoft.com\u002Fcodeofconduct\u002F).\nFor more information see the [Code of Conduct FAQ](https:\u002F\u002Fopensource.microsoft.com\u002Fcodeofconduct\u002Ffaq\u002F) or\ncontact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n\n## Trademarks\n\nThis project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft \ntrademarks or logos is subject to and must follow \n[Microsoft's Trademark & Brand Guidelines](https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Flegal\u002Fintellectualproperty\u002Ftrademarks\u002Fusage\u002Fgeneral).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\nAny use of third-party trademarks or logos are subject to those third-party's policies.\n","[![PyPI - Version](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fmultilspy)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fmultilspy\u002F)\n# Multilspy: 用于构建基于语言服务器的应用程序的 Python LSP 客户端库\n\n## 简介\n本仓库托管 `multilspy`，这是一个作为 NeurIPS 2023 论文《使用仓库上下文的静态分析引导代码语言模型解码》（[“使用监控器通过全局上下文引导代码语言模型”](https:\u002F\u002Farxiv.org\u002Fabs\u002F2306.10763)）研究工作的一部分而开发的库。该论文提出了一种用于代码生成的语言模型引导解码方法——监控引导解码（MGD）。在此方法中，监控器利用静态分析来指导解码过程，确保生成的代码符合各种正确性属性，例如不存在幻觉符号名、方法调用顺序有效等。有关监控引导解码的更多详细信息，请参阅论文及 GitHub 仓库 [microsoft\u002Fmonitors4codegen](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmonitors4codegen)。\n\n`multilspy` 是一个跨平台库，旨在简化创建语言服务器客户端的过程，以便查询并从多种通过 [语言服务器协议](https:\u002F\u002Fmicrosoft.github.io\u002Flanguage-server-protocol\u002F) 进行通信的语言服务器获取各类静态分析结果。它易于扩展，可支持任何拥有语言服务器的语言，并且我们计划持续增加对更多语言服务器和语言的支持。\n\n[语言服务器]((https:\u002F\u002Fmicrosoft.github.io\u002Flanguage-server-protocol\u002Foverviews\u002Flsp\u002Foverview\u002F)) 是一种工具，可在代码仓库上执行多种静态分析，并通过 [语言服务器协议 (LSP)](https:\u002F\u002Fmicrosoft.github.io\u002Flanguage-server-protocol\u002Foverviews\u002Flsp\u002Foverview\u002F) 提供有用的信息，例如基于类型的代码补全建议、符号定义位置、符号引用等。由于 LSP 具有语言无关性，`multilspy` 可以通过统一的接口提供不同语言代码的静态分析结果。\n\n`multilspy` 旨在简化语言服务器的使用流程，通过处理使用语言服务器时的多个步骤来实现这一目标：\n* 自动下载特定于操作系统的服务器二进制文件，并完成语言服务器的启动与关闭；\n* 处理客户端与服务器之间的 JSON-RPC 通信；\n* 维护并传递经过精心调整的服务器及语言特定配置参数；\n* 向用户提供简单的 API，同时自动执行服务器特定协议中的所有步骤以完成查询或请求。\n\n`multilspy` 可以提供的部分分析结果包括：\n- 查找函数或类的定义（[textDocument\u002Fdefinition](https:\u002F\u002Fmicrosoft.github.io\u002Flanguage-server-protocol\u002Fspecifications\u002Flsp\u002F3.17\u002Fspecification\u002F#textDocument_definition)）\n- 查找函数的调用者或类的实例化位置（[textDocument\u002Freferences](https:\u002F\u002Fmicrosoft.github.io\u002Flanguage-server-protocol\u002Fspecifications\u002Flsp\u002F3.17\u002Fspecification\u002F#textDocument_references)）\n- 提供基于类型的引用补全（[textDocument\u002Fcompletion](https:\u002F\u002Fmicrosoft.github.io\u002Flanguage-server-protocol\u002Fspecifications\u002Flsp\u002F3.17\u002Fspecification\u002F#textDocument_completion)）\n- 获取悬停在符号上时显示的信息，如方法签名（[textDocument\u002Fhover](https:\u002F\u002Fmicrosoft.github.io\u002Flanguage-server-protocol\u002Fspecifications\u002Flsp\u002F3.17\u002Fspecification\u002F#textDocument_hover)）\n- 获取给定文件中定义的所有符号列表\u002F树结构，以及符号类型，如类、方法等（[textDocument\u002FdocumentSymbol](https:\u002F\u002Fmicrosoft.github.io\u002Flanguage-server-protocol\u002Fspecifications\u002Flsp\u002F3.17\u002Fspecification\u002F#textDocument_documentSymbol)）\n- 如需其他未列出的 LSP 请求，请提交问题或拉取请求。\n\n## 安装\n建议使用 `python>=3.10` 创建一个新的虚拟环境。使用 conda 创建并激活虚拟环境的命令如下：\n```\nconda create -n multilspy_env python=3.10\nconda activate multilspy_env\n```\n关于 Python 虚拟环境的更多详细信息和创建说明，请参阅 [官方文档](https:\u002F\u002Fdocs.python.org\u002F3\u002Flibrary\u002Fvenv.html)。此外，我们也推荐用户使用 [Miniconda](https:\u002F\u002Fdocs.conda.io\u002Fen\u002Flatest\u002Fminiconda.html)，作为上述创建虚拟环境步骤的替代方案。\n\n使用 pip 安装 `multilspy` 的命令如下：\n```\npip install multilspy\n```\n\n## 支持的语言\n目前，`multilspy` 支持以下语言：\n| 编程语言 | 语言服务器 |\n| --- | --- |\n| Java | Eclipse JDTLS |\n| Python | jedi-language-server |\n| Rust | Rust Analyzer |\n| C# | OmniSharp \u002F RazorSharp |\n| TypeScript | TypeScriptLanguageServer |\n| JavaScript | TypeScriptLanguageServer |\n| Go | gopls |\n| Dart | Dart |\n| Ruby | Solargraph |\n| Kotlin | KotlinLanguageServer |\n\n## 使用方法\n使用示例：\n```python\nfrom multilspy import SyncLanguageServer\nfrom multilspy.multilspy_config import MultilspyConfig\nfrom multilspy.multilspy_logger import MultilspyLogger\n...\nconfig = MultilspyConfig.from_dict({\"code_language\": \"java\"}) # 同样支持 \"python\", \"rust\", \"csharp\", \"typescript\", \"javascript\", \"go\", \"dart\", \"ruby\"\nlogger = MultilspyLogger()\nlsp = SyncLanguageServer.create(config, logger, \"\u002Fabs\u002Fpath\u002Fto\u002Fproject\u002Froot\u002F\")\nwith lsp.start_server():\n    result = lsp.request_definition(\n        \"relative\u002Fpath\u002Fto\u002Fcode_file.java\", # 发起请求的代码文件路径\n        163, # 请求符号所在的行号\n        4 # 请求符号所在的列号\n    )\n    result2 = lsp.request_completions(\n        ...\n    )\n    result3 = lsp.request_references(\n        ...\n    )\n    result4 = lsp.request_document_symbols(\n        ...\n    )\n    result5 = lsp.request_hover(\n        ...\n    )\n    ...\n```\n\n`multilspy` 还提供了基于 asyncio 的 API，可用于异步上下文中。异步使用示例：\n```python\nfrom multilspy import LanguageServer\n...\nlsp = LanguageServer.create(...)\nasync with lsp.start_server():\n    result = await lsp.request_definition(\n        ...\n    )\n    ...\n```\n\n文件 [src\u002Fmultilspy\u002Flanguage_server.py](src\u002Fmultilspy\u002Flanguage_server.py) 提供了 `multilspy` 的 API。位于 [tests\u002Fmultilspy\u002F](tests\u002Fmultilspy\u002F) 中的多个测试用例提供了 `multilspy` 的详细使用示例。可通过运行以下命令执行这些测试：\n```bash\npytest tests\u002Fmultilspy\n```\n\n## `multilspy` 在 AI4Code 场景中的应用，如监控引导解码\n`multilspy` 提供了语言服务器协议为 VSCode 等 IDE 所提供的所有功能。它对于开发能够与大型语言模型（LLM）等 AI 系统交互的工具集非常有用。\n\n### [监控引导解码](https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmonitors4codegen)\n其中一个用例就是监控引导解码（MGD），其中 `multilspy` 被用来获取诸如类型导向补全之类的静态分析结果，以指导使用大语言模型逐标记生成代码。这样可以确保所有生成的标识符和方法名在仓库上下文中都是有效的，从而显著提高生成代码的可编译性。MGD 还展示了如何利用 `multilspy` 创建监控器，以保证大语言模型生成的代码中所有函数调用都接收正确数量的参数，并且对象的方法调用遵循正确的协议顺序（例如，在文件对象上不会先调用“read”再调用“open”）。\n\n### Multilspy 在其他用例中的应用\n* [\"修复测试：通过静态收集器和神经重排序器增强大语言模型以修复测试用例\"，载于 2024 年 IEEE 第 35 届软件可靠性工程国际研讨会 (ISSRE)](https:\u002F\u002Fgithub.com\u002FSQUARE-RG\u002FSynTeR)\n* [使用 multilspy 获取 Python 补全的教程](https:\u002F\u002Fmedium.com\u002F@techhara\u002Fpython-obtain-completions-3db4d2479b82)\n* 收集并利用仓库级别的上下文信息，用于构建仓库级编码智能体\n\n## 常见问题解答 (FAQ)\n### 执行 MGD 测试时出现与 ```asyncio``` 相关的运行时错误\n如果您遇到以下错误：\n```\nRuntimeError: Task \u003CTask pending name='Task-2' coro=\u003C_AsyncGeneratorContextManager.__aenter__() running at\n    python3.8\u002Fcontextlib.py:171> cb=[_chain_future.\u003Clocals>._call_set_state() at\n    python3.8\u002Fasyncio\u002Ffutures.py:367]> got Future \u003CFuture pending> attached to a different loop python3.8\u002Fasyncio\u002Flocks.py:309: RuntimeError\n```\n\n请确保您创建了一个 Python 版本 ```>=3.10``` 的新环境。更多详细信息，请参阅 [StackOverflow 讨论](https:\u002F\u002Fstackoverflow.com\u002Fquestions\u002F73599594\u002Fasyncio-works-in-python-3-10-but-not-in-python-3-8)。\n\n## 引用 Multilspy\n如果您在研究或应用中使用了 Multilspy，请使用以下 BibTeX 格式引用：\n```\n@inproceedings{NEURIPS2023_662b1774,\n author = {Agrawal, Lakshya A and Kanade, Aditya and Goyal, Navin and Lahiri, Shuvendu and Rajamani, Sriram},\n booktitle = {Advances in Neural Information Processing Systems},\n editor = {A. Oh and T. Naumann and A. Globerson and K. Saenko and M. Hardt and S. Levine},\n pages = {32270--32298},\n publisher = {Curran Associates, Inc.},\n title = {基于仓库上下文静态分析的代码大语言模型监控引导解码},\n url = {https:\u002F\u002Fproceedings.neurips.cc\u002Fpaper_files\u002Fpaper\u002F2023\u002Ffile\u002F662b1774ba8845fc1fa3d1fc0177ceeb-Paper-Conference.pdf},\n volume = {36},\n year = {2023}\n}\n```\n\n## 贡献\n本项目欢迎贡献和建议。大多数贡献都需要您同意贡献者许可协议 (CLA)，声明您有权并将您的贡献权利授予我们。有关详细信息，请访问 https:\u002F\u002Fcla.opensource.microsoft.com。\n\n当您提交拉取请求时，CLA 机器人会自动判断您是否需要提供 CLA，并相应地标记 PR（例如状态检查、评论）。只需按照机器人提供的说明操作即可。对于使用我们 CLA 的所有仓库，您只需执行一次此操作。\n\n本项目已采用 [微软开源行为准则](https:\u002F\u002Fopensource.microsoft.com\u002Fcodeofconduct\u002F)。更多信息请参阅 [行为准则常见问题解答](https:\u002F\u002Fopensource.microsoft.com\u002Fcodeofconduct\u002Ffaq\u002F) 或发送电子邮件至 [opencode@microsoft.com](mailto:opencode@microsoft.com) 提出任何其他问题或意见。\n\n## 商标\n本项目可能包含项目、产品或服务的商标或徽标。未经授权使用微软商标或徽标须遵守并遵循 [微软商标与品牌指南](https:\u002F\u002Fwww.microsoft.com\u002Fen-us\u002Flegal\u002Fintellectualproperty\u002Ftrademarks\u002Fusage\u002Fgeneral)。在本项目的修改版本中使用微软商标或徽标不得造成混淆或暗示微软的赞助。任何第三方商标或徽标的使用均受其各自政策的约束。","# Multilspy 快速上手指南\n\nMultilspy 是一个基于 Python 的跨平台 LSP（语言服务器协议）客户端库，旨在简化与各类语言服务器的交互，帮助开发者轻松获取代码静态分析结果（如定义跳转、引用查找、自动补全等），特别适用于构建 AI 辅助编程工具。\n\n## 环境准备\n\n- **操作系统**：支持 Windows、macOS 和 Linux（跨平台）\n- **Python 版本**：必须使用 **Python 3.10 或更高版本**（低版本可能导致 asyncio 运行时错误）\n- **包管理工具**：推荐使用 `pip` 或 `conda`\n- **网络建议**：若下载语言服务器二进制文件较慢，可配置国内镜像源加速 pip 安装，但语言服务器本身需从官方源下载（暂无官方中国镜像）\n\n> 💡 建议创建独立的虚拟环境以避免依赖冲突。\n\n## 安装步骤\n\n### 方式一：使用 Conda（推荐）\n\n```bash\nconda create -n multilspy_env python=3.10\nconda activate multilspy_env\npip install multilspy\n```\n\n### 方式二：使用 venv + pip\n\n```bash\npython3.10 -m venv multilspy_env\nsource multilspy_env\u002Fbin\u002Factivate  # Windows 用户请使用：multilspy_env\\Scripts\\activate\npip install multilspy\n```\n\n> ✅ 安装完成后，库会自动在首次运行时按需下载对应语言的服务器二进制文件（如 Java 的 JDTLS、Python 的 jedi-language-server 等）。\n\n## 基本使用\n\n以下是最简单的同步调用示例，以 Java 项目为例：\n\n```python\nfrom multilspy import SyncLanguageServer\nfrom multilspy.multilspy_config import MultilspyConfig\nfrom multilspy.multilspy_logger import MultilspyLogger\n\n# 配置目标语言（支持：java, python, rust, csharp, typescript, javascript, go, dart, ruby, kotlin）\nconfig = MultilspyConfig.from_dict({\"code_language\": \"java\"})\nlogger = MultilspyLogger()\n\n# 初始化语言服务器（传入项目根目录绝对路径）\nlsp = SyncLanguageServer.create(config, logger, \"\u002Fabs\u002Fpath\u002Fto\u002Fproject\u002Froot\u002F\")\n\n# 启动服务器并执行查询\nwith lsp.start_server():\n    # 获取某符号的定义位置\n    result = lsp.request_definition(\n        \"src\u002Fmain\u002Fjava\u002Fcom\u002Fexample\u002FApp.java\",  # 文件相对路径\n        25,   # 行号（从 0 开始）\n        10    # 列号（从 0 开始）\n    )\n    print(result)\n\n    # 获取自动补全建议\n    completions = lsp.request_completions(\n        \"src\u002Fmain\u002Fjava\u002Fcom\u002Fexample\u002FApp.java\",\n        25,\n        10\n    )\n    print(completions)\n```\n\n如需在异步场景中使用（例如集成到 async AI 服务中），可使用 asyncio 接口：\n\n```python\nfrom multilspy import LanguageServer\n\nlsp = LanguageServer.create(config, logger, \"\u002Fabs\u002Fpath\u002Fto\u002Fproject\u002Froot\u002F\")\n\nasync with lsp.start_server():\n    result = await lsp.request_definition(\n        \"src\u002Fmain\u002Fjava\u002Fcom\u002Fexample\u002FApp.java\",\n        25,\n        10\n    )\n```\n\n> 📌 提示：更多用法请参考 `tests\u002Fmultilspy\u002F` 目录下的测试用例，运行 `pytest tests\u002Fmultilspy` 可验证本地环境是否正常。","某 AI 研发团队正在构建一个跨语言的代码大模型辅助系统，需要实时获取多语言仓库中的符号定义、引用关系及类型信息以引导模型生成准确代码。\n\n### 没有 multilspy 时\n- 团队需为 Python、Java、Go 等不同语言分别编写复杂的 LSP 客户端，重复处理 JSON-RPC 通信协议，开发成本极高。\n- 每次集成新语言服务器时，都要手动处理特定平台的二进制文件下载、环境配置及进程启停，极易因环境差异导致运行失败。\n- 缺乏统一的接口标准，上层应用必须针对不同语言服务器调整调用逻辑，导致代码耦合度高且难以维护。\n- 难以精确控制服务器特有的配置参数，静态分析结果（如函数跳转、悬停提示）经常因配置不当而缺失或报错。\n\n### 使用 multilspy 后\n- 通过统一的 Python API 即可访问任意支持 LSP 的语言服务器，无需关心底层通信细节，显著降低多语言适配难度。\n- 自动处理各平台服务器二进制的下载与环境生命周期管理，实现“开箱即用”，彻底消除环境部署痛点。\n- 提供标准化的查询接口，上层应用可用同一套代码逻辑获取不同语言的符号定义、引用列表及补全建议，架构清晰简洁。\n- 内置针对各类服务器的优化配置模板，确保能稳定获取高质量的类型推导和代码结构信息，提升下游 AI 模型的准确性。\n\nmultilspy 将繁琐的语言服务器交互封装为简单的 Python 调用，让开发者能专注于构建基于全局代码上下文的智能应用，而非陷入底层协议泥潭。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fmicrosoft_multilspy_c37cea35.png","microsoft","Microsoft","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fmicrosoft_4900709c.png","Open source projects and samples from Microsoft",null,"opensource@microsoft.com","OpenAtMicrosoft","https:\u002F\u002Fopensource.microsoft.com","https:\u002F\u002Fgithub.com\u002Fmicrosoft",[86],{"name":87,"color":88,"percentage":89},"Python","#3572A5",100,560,102,"2026-04-03T05:11:10","MIT","Linux, macOS, Windows","未说明",{"notes":97,"python":98,"dependencies":99},"该工具是一个跨平台的 LSP 客户端库，用于与多种语言的 Language Server 通信。它会自动处理特定平台的服务器二进制文件下载及环境配置。建议使用 conda 创建虚拟环境（Python 3.10+）以避免 asyncio 相关的运行时错误。支持的语言包括 Java, Python, Rust, C#, TypeScript, JavaScript, Go, Dart, Ruby, Kotlin，对应的语言服务器需由工具自动下载或配置。",">=3.10",[],[53,26,13,15,14],[102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120],"ai","ai4code","artificial-intelligence","code-analysis","code-completion","code-generation","codegen","huggingface-transformers","language-server-client","language-server-protocol","large-language-model","large-language-models","llm","lsp","lsp-client","neurips","neurips-2023","program-synthesis","transformer","2026-03-27T02:49:30.150509","2026-04-06T06:44:44.307654",[124,129,134,139,144,149,154],{"id":125,"question_zh":126,"answer_zh":127,"source_url":128},18039,"为什么 TypeScript LSP 无法解析不同文件之间的符号引用？","这通常是因为 LSP 的根目录路径设置不正确。请确保将 LSP 的根路径（root path）设置为包含 `package.json` 和其他配置文件的仓库根目录，而不是子文件夹。即使使用的是相对路径引用，如果根路径指向了错误的子目录，跨文件引用也无法被正确解析。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fissues\u002F61",{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},18040,"如何解决 typescript_language_server 因 node_modules 搜索行为导致安装位置错误的问题？","Node 在安装依赖时会向上遍历父目录查找 `node_modules`，如果找到就会安装在那里，导致 multilspy 在预期的 `site-packages` 路径下找不到二进制文件。解决方法是在包内的 `typescript_language_server\u002Fstatic\u002Fts-lsp\u002F` 目录下创建一个空的 `node_modules` 子目录，强制 Node 将依赖安装在该特定位置。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fissues\u002F59",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},18041,"multilspy 是否支持 C 或 C++ 语言？","目前 multilspy 尚未内置 C\u002FC++ 的语言服务器集成。用户可以通过参考项目中的通用步骤（如 Issue #5）和示例 PR（如 Issue #6）来自行添加对新语言的支持。对于 C\u002FC++，社区已在相关讨论中列出了一些有潜力的语言服务器供尝试集成。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fissues\u002F19",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},18042,"如何在项目中安装 multilspy？","multilspy 已发布到 PyPi，可以直接通过 pip 进行安装。使用命令 `pip install multilspy` 即可获取最新版本。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fissues\u002F4",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},18043,"multilspy 与需要 Pydantic v2 的库（如 LangChain）存在兼容性问题怎么办？","该项目已意识到与 Pydantic v1 的依赖冲突问题。维护者计划移除对 Pydantic 的直接依赖以解决此兼容性障碍。建议关注项目的最新更新或 Pull Request（如 PR #58），以获取移除了 Pydantic 依赖或升级了版本的代码。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fissues\u002F55",{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},18044,"在 macOS 上运行 Java 测试时遇到\"\u002Fusr\u002Flibexec\u002Fjava_home: No such file or directory\"错误如何解决？","该错误表明系统无法找到 Java 安装路径。这通常发生在 macOS 环境中未正确配置 JAVA_HOME 或未安装 JDK 时。请确保已安装 JDK，并且 `\u002Fusr\u002Flibexec\u002Fjava_home` 命令能在终端正常执行。如果在 Docker 中成功但在本地 macOS 失败，请检查本地 Java 环境配置是否与 Docker 镜像一致。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fissues\u002F103",{"id":155,"question_zh":156,"answer_zh":157,"source_url":158},18045,"Rust 语言的 `request_definition` 等功能返回空结果怎么办？","如果 multilspy 对 Rust 的支持无法满足需求或遇到问题，可以尝试使用其他专门的 Python LSP 客户端库，例如 `lspprotocal` 包。此外，也有社区正在构建新的高性能 Python 客户端 `lsp-client`，宣称对 Rust 等语言服务器有更好的支持，可作为替代方案尝试。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fissues\u002F129",[160,164,169,173,178,183,187,192,196,201,205,210,214,219,223,228,232,237,242,247],{"id":161,"version":162,"summary_zh":80,"released_at":163},108470,"v0.0.15-auto","2025-04-03T07:02:14",{"id":165,"version":166,"summary_zh":167,"released_at":168},108471,"v0.0.15","## 变更内容\n* 由 @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F74 中更新了 pyproject.toml\n* 修复：由 @IDontHaveBrain 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F70 中解决了 Windows 上的 'No module named pwd' 错误\n* 在 `request_references` 和 `request_document_symbols` 中的断言失败处添加提示信息，由 @jetzhou 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F75 中完成\n* 让语言服务器子进程成为其独立的进程组，由 @jetzhou 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F77 中实现\n* 由 @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F90 中更新了 test_multilspy_csharp.py\n* SyncLanguageServer.create - 添加了一条简短的文档说明，由 @Andrej730 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F87 中完成\n* 将 jedi-language-server 升级至 0.41.3，以支持 textDocument\u002Fdeclaration 功能，由 @Andrej730 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F88 中完成\n* 修复 mac x64 的配置问题，由 @htynkn 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F93 中完成\n* 如果相对路径不可用，则将 Location.relativePath 设置为 `None` #85，由 @Andrej730 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F86 中实现\n* 新特性：添加对 workspace\u002Fsymbol 请求的支持，由 @moz-mdauer 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F98 中完成\n* 新特性：添加 Kotlin 语言支持，由 @IDontHaveBrain 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F80 中完成\n* 由 @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F99 中更新了 pyproject.toml\n\n## 新贡献者\n* @IDontHaveBrain 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F70 中完成了首次贡献\n* @Andrej730 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F87 中完成了首次贡献\n* @htynkn 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F93 中完成了首次贡献\n* @moz-mdauer 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F98 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fcompare\u002Fv0.0.14...v0.0.15","2025-04-03T06:32:19",{"id":170,"version":171,"summary_zh":80,"released_at":172},108472,"v0.0.14-corrected-auto","2025-03-03T06:53:24",{"id":174,"version":175,"summary_zh":176,"released_at":177},108473,"v0.0.14-corrected","## 变更内容\n* 由 @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F74 中更新了 pyproject.toml\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fcompare\u002Fv0.0.14...v0.0.14-corrected","2025-03-03T03:55:17",{"id":179,"version":180,"summary_zh":181,"released_at":182},108474,"v0.0.14","## 变更内容\n* 添加 psutil 依赖，并由 @v4rgas 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F67 中增强了进程终止处理。\n* 功能：为 SyncLanguageServer 添加可选的超时参数，由 @v4rgas 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F66 中实现。\n* 修复进程终止中的竞态条件，由 @v4rgas 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F69 中完成。\n* 功能\u002Fdart，由 @v4rgas 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F68 中实现。\n* 更新 pyproject.toml，由 @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F73 中完成。\n\n## 新贡献者\n* @v4rgas 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F67 中完成了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fcompare\u002Fv0.0.13...v0.0.14","2025-03-03T03:41:16",{"id":184,"version":185,"summary_zh":80,"released_at":186},108475,"v0.0.13-auto","2025-02-25T23:02:58",{"id":188,"version":189,"summary_zh":190,"released_at":191},108476,"v0.0.13","## 变更内容\n* @jetzhou 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F62 中为 `typescript` 和 `typescript-language-server` 的 `npm install` 命令指定了 `--prefix` 参数。\n* @AviAvni 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F58 中移除了 Pydantic。\n* @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F65 中将 `pyproject.toml` 更新至 v0.0.13。\n\n## 新贡献者\n* @jetzhou 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F62 中完成了首次贡献。\n* @AviAvni 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F58 中完成了首次贡献。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fcompare\u002Fv0.0.12...v0.0.13","2025-02-25T22:57:21",{"id":193,"version":194,"summary_zh":80,"released_at":195},108477,"v0.0.12-auto","2025-01-29T09:56:51",{"id":197,"version":198,"summary_zh":199,"released_at":200},108478,"v0.0.12","## 变更内容\n* @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F51 中将 pyproject.toml 更新至 v0.0.11\n* @sbrudz 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F46 中通过 solargraph 添加了 Ruby 支持\n* @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F56 中更新 publish-to-pypi.yaml，添加了 Ruby 支持\n* @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F57 中更新 pyproject.toml，添加了 Ruby 支持，并将版本号设置为 v0.0.12\n\n## 新贡献者\n* @sbrudz 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F46 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fcompare\u002Fv0.0.11...v0.0.12","2025-01-29T09:51:01",{"id":202,"version":203,"summary_zh":80,"released_at":204},108479,"v0.0.11-corrected-auto","2025-01-26T21:25:38",{"id":206,"version":207,"summary_zh":208,"released_at":209},108480,"v0.0.11-corrected","## 变更内容\n* 松弛 Pydantic 版本要求，由 @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F49 中完成\n* 功能：Go 语言支持（gopls），由 @pratham1002 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F41 中完成\n* 更新 README.md，在说明中添加 Go 支持，由 @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F50 中完成\n* 将 pyproject.toml 更新至 v0.0.11，由 @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F51 中完成\n\n## 新贡献者\n* @pratham1002 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F41 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fcompare\u002Fv0.0.9...v0.0.11-corrected","2025-01-26T21:19:53",{"id":211,"version":212,"summary_zh":80,"released_at":213},108481,"v0.0.11-auto","2025-01-26T21:15:22",{"id":215,"version":216,"summary_zh":217,"released_at":218},108482,"v0.0.11","## 变更内容\n* 功能：添加 Go 语言支持（gopls），由 @pratham1002 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F41 中实现\n* 更新 README.md，在说明中加入 Go 支持，由 @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F50 中完成\n\n## 新贡献者\n* @pratham1002 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F41 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fcompare\u002Fv0.0.10...v0.0.11","2025-01-26T21:09:55",{"id":220,"version":221,"summary_zh":80,"released_at":222},108483,"v0.0.10-auto","2025-01-26T06:32:41",{"id":224,"version":225,"summary_zh":226,"released_at":227},108484,"v0.0.10","## 变更内容\n* 松弛 Pydantic 版本要求，由 @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F49 中完成\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fcompare\u002Fv0.0.9...v0.0.10","2025-01-26T06:27:55",{"id":229,"version":230,"summary_zh":80,"released_at":231},108485,"v0.0.9-auto","2024-12-28T08:07:30",{"id":233,"version":234,"summary_zh":235,"released_at":236},108486,"v0.0.9","## 变更内容\n* 更新 publish-to-pypi.yaml，使其在标签推送时也能运行，由 @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F36 中完成。\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fcompare\u002Fv0.0.8...v0.0.9","2024-12-28T08:02:09",{"id":238,"version":239,"summary_zh":240,"released_at":241},108487,"v0.0.8","## 变更内容\n* 更新 eclipse_jdtls.py，由 @LakshyAAAgrawal 在 https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F35 中实现设置 JAVA_HOME。\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fcompare\u002Fv0.0.7...v0.0.8","2024-12-28T07:23:58",{"id":243,"version":244,"summary_zh":245,"released_at":246},108488,"v0.0.7","## What's Changed\r\n* docs: fix OmniSharp reference in documentation (was Rust Analyzer) by @nassermohamedit in https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F33\r\n* Add support for osx-arm64 for Java and Rust by @mrT23 in https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F8\r\n\r\n## New Contributors\r\n* @mrT23 made their first contribution in https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F8\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fcompare\u002Fv0.0.6...v0.0.7","2024-12-28T06:52:58",{"id":248,"version":249,"summary_zh":250,"released_at":251},108489,"v0.0.6","## What's Changed\r\n* Update README.md by @LakshyAAAgrawal in https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F24\r\n* Update README.md by @adityakanade in https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F31\r\n* Catch FileNotFoundError when 'dotnet' is not in the system by @nassermohamedit in https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F29\r\n* Update pyproject.toml by @LakshyAAAgrawal in https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F32\r\n\r\n## New Contributors\r\n* @adityakanade made their first contribution in https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F31\r\n* @nassermohamedit made their first contribution in https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fpull\u002F29\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fmultilspy\u002Fcompare\u002Fv0.0.5...v0.0.6","2024-12-20T10:37:26"]