OpenCode: OpenCode LSP服务器配置

最后更新:2026-08-31

LSP(Language Server Protocol)让 OpenCode 获得 IDE 级别的代码分析能力。

1. 你将学到


2. 什么是 LSP

LSP(Language Server Protocol)是微软提出的语言服务协议,让编辑器获得代码分析能力。

能力 说明
代码补全 输入时提供智能补全建议
跳转定义 跳转到符号的定义位置
查找引用 查找符号的所有引用
符号重命名 安全地重命名符号
诊断信息 实时显示语法和类型错误
悬停信息 鼠标悬停显示类型和文档

3. OpenCode 中的 LSP

(1) 启用实验性 LSP 工具

BASH
export OPENCODE_EXPERIMENTAL_LSP_TOOL=true

或在环境变量中设置:

JSON
{
  "env": {
    "OPENCODE_EXPERIMENTAL_LSP_TOOL": "true"
  }
}

(2) 配置 LSP 服务器

在 opencode.json 中配置:

JSON
{
  "lsp": {
    "typescript": {
      "command": "typescript-language-server",
      "args": ["--stdio"]
    },
    "python": {
      "command": "pylsp",
      "args": []
    },
    "go": {
      "command": "gopls",
      "args": []
    }
  }
}

4. 常用语言服务器

语言 服务器 安装命令
TypeScript/JavaScript typescript-language-server npm i -g typescript-language-server typescript
Python pylsp pip install python-lsp-server
Python pyright npm i -g pyright
Go gopls go install golang.org/x/tools/gopls@latest
Rust rust-analyzer rustup component add rust-analyzer
C/C++ clangd 系统包管理器安装
Java jdtls Eclipse JDT Language Server
Ruby solargraph gem install solargraph

5. LSP 工具使用

启用后,AI 可以使用 LSP 工具进行代码分析:

TEXT 📖 仅展示
找出 auth 函数的所有引用

AI 会调用 LSP 的查找引用功能,精确返回结果。


6. 配置示例

(1) TypeScript 项目

JSON
{
  "lsp": {
    "typescript": {
      "command": "typescript-language-server",
      "args": ["--stdio"],
      "file_patterns": [".ts", ".tsx", ".js", ".jsx"]
    }
  }
}

(2) 多语言项目

JSON
{
  "lsp": {
    "typescript": {
      "command": "typescript-language-server",
      "args": ["--stdio"]
    },
    "python": {
      "command": "pyright",
      "args": ["--stdio"]
    }
  }
}

7. 注意事项


❓ 常见问题

Q LSP 工具是必须配置的吗?
A 不是。没有 LSP,OpenCode 仍可通过文件读取和搜索分析代码。LSP 提供更精确的分析能力(如跳转定义、查找引用),是增强功能。
Q LSP 服务器启动很慢怎么办?
A 大型项目的 LSP 服务器首次启动需要索引,确实较慢。可以提前启动 LSP 服务器,OpenCode 会复用已有实例。
Q Alice 配置了 LSP,Bob 没有,谁的代码分析更准确?
A Alice 更准确。LSP 提供语义级的代码分析(如类型推断、引用查找),而 Bob 只能依赖文本搜索,精度较低。

📖 小节


📝 作业

  1. 基础题:为你的主要编程语言安装 LSP 服务器。

  2. 进阶题:在 opencode.json 中配置 LSP,让 OpenCode 能使用跳转定义和查找引用功能。

  3. 挑战题:对比有无 LSP 时 OpenCode 的代码分析精度差异,记录具体的分析结果对比。

Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏