OpenCode LSP 配置:在终端获得诊断与符号导航的完整指南
【免费下载链接】opencodeThe open source coding agent.项目地址: https://gitcode.com/GitHub_Trending/openc/opencode
OpenCode 是一个开源 AI 编程智能体,可在终端里运行。它内置 LSP 集成,文件保存后会自动收集语言服务器的诊断与符号信息。如果你在终端里写 TypeScript、Go 或 Python 代码,这套能力可以直接用。
谁在什么场景下需要它
当你在终端里让智能体修改一个 .ts 文件时,OpenCode 会在保存后拉起对应的语言服务器,并把诊断结果喂给模型。模型可以按报错自行修正语法错误,不用你手动复制错误信息。
当你想确认某个函数的签名时,不用切去编辑器。智能体可以直接发起 hover 请求,把参数类型和文档读出来。
当你问“这个符号在项目里哪里被用到”时,它会调用符号搜索,返回文件和行号列表。到这里,一套终端 LSP 配置就已经在实际干活了。
5分钟完成最小可用配置
Step 1:安装
从 npm 全局安装即可,无需手动 clone 源码。
npm i -g opencode-ai@latestStep 2:启用 LSP
在项目根目录建一个opencode.json,lsp设为true就启用了全部内置语言服务器。这是最小终端 LSP 配置。
{ "lsp": true }Step 3:启动
进入项目目录,直接运行。
opencode核心能力速查表
| 能力 | 一句话说明 | 触发方式或入口 |
|---|---|---|
| 终端 LSP 诊断 | 文件保存后自动收集语言服务器诊断,注入给模型 | edit、write 工具保存后自动触发 |
| hover 文档查询 | 返回光标位置的类型与文档信息 | 智能体调用 lsp 工具的 hover |
| 跳转定义与查引用 | 返回指定位置的定义处或全部引用 | goToDefinition、findReferences |
| 跨工作区符号搜索 | 按关键词搜索符号名,每个服务器最多返回 10 条 | workspaceSymbol |
最关键的是第一行。诊断在文件变更后被放进对话上下文,智能体能在同一轮会话里看到报错并修复,不需要你先跑一遍编译。
相关实现:packages/opencode/src/lsp/
两个值得试的实战用例
用例 1:接入自定义语言服务器
场景:内置列表没覆盖你的语言,或者你想指定自己的命令与参数,把 opencode 语言服务器接入完全交给配置控制。
操作:
{ "lsp": { "rust": { "command": ["rust-analyzer", "--stdio"], "extensions": [".rs"] } } }效果:保存 .rs 文件后,rust-analyzer 的诊断和符号查询与 TypeScript 体验一致。
用例 2:让智能体直接查引用
场景:你不知道某个函数被谁调用,想跳过 grep 直接问智能体。
操作:
检查项目里所有调用 buildServer 的位置,指出缺少错误处理的地方效果:智能体调用 findReferences 与 workspaceSymbol,返回带文件:行号的清单并给出说明。
踩过的坑及排查路径
保存文件后没有任何诊断
- 确认
opencode.json里的lsp没有被设成 false - 确认对应语言服务器二进制已安装
- 重启会话,拉起失败会被缓存,当次会话不重试
解决:在opencode.json中设"lsp": true,这是 opencode 语言服务器接入的地基。
TypeScript 项目里服务器拉不起来
- 内置服务器依赖项目 node_modules 里的 typescript
- 还需要 typescript-language-server 命令可用
- 装好后重启会话再试
解决:npm i -D typescript typescript-language-server
monorepo 里诊断范围不对
- 服务器工作目录按最近的 lockfile 向上查找判断
- 检查 lockfile 是否落在父包而不是目标子包
- 确认子包有自己的清单文件
解决:在目标子包目录补齐 package.json 与 lockfile。
OpenCode 用标准 LSP 协议,把 IDE 级的诊断和导航带进终端,再交给智能体形成“看到报错、就地修复”的闭环。
- 源码:packages/opencode/src/lsp/
- LSP 工具说明:packages/opencode/src/tool/lsp.txt
- 配置目录:packages/opencode/src/config/
opencode
【免费下载链接】opencodeThe open source coding agent.项目地址: https://gitcode.com/GitHub_Trending/openc/opencode
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考