用途:借助语言服务器协议(LSP)实现语义级代码理解,用于在大型代码库中精确定位定义、查找引用、获取类型信息、查看文件符号结构与编译诊断,效果优于基于文本的 grep。
主要能力:转到定义(goToDefinition,可处理导入导出);查找所有引用(findReferences,识别语义引用而非文本匹配,重构前评估影响的关键);获取文件符号结构(documentSymbols);悬停类型与文档信息(hover);获取编译错误与警告(diagnostics,编译器级准确)。
支持语言与安装命令:TypeScript/JavaScript 使用 typescript-language-server,命令 npm install -g typescript-language-server typescript;Python 使用 python-lsp-server,命令 pip install python-lsp-server;Go 使用 gopls,命令 go install golang.org/x/tools/gopls@latest;Rust 使用 rust-analyzer(通过 rustup 或独立安装);Java 使用 jdtls(Eclipse JDT Language Server);C# 使用 omnisharp(需 .NET SDK)。
使用方式:适合与 Explore 智能体配合,先用 LSP 查找废弃函数的全部引用,再由 Explore 理解迁移模式,最后用 LSP 逐个导航到使用处进行重构;建议在实现前用 LSP 理解现有结构,实现中通过诊断及早发现错误,提交前用 findReferences 确认无破坏性改动。
适用与不适用:查找定义、引用、类型层级、类型错误时用 LSP;搜索文本模式、按文件名查找文件时不适合 LSP,应采用文本搜索或 Glob。
限制与注意事项:资料未给出具体 API 调用代码;性能可能受 node_modules 与构建目录影响,需排除并正确配置 tsconfig.json 等;缺失引用常因项目类型信息不全、依赖缺少类型定义或语言服务器尚未完成索引;安装排障可用 which、--version 或 --stdio 检查语言服务器状态。技能文档建议单次响应不超过 2000 tokens。