LSP 服务器
显式启用语言诊断,核对运行条件、下载控制和自定义服务器。
LSP 将语言服务器诊断反馈给 Agent,默认关闭。它可以帮助发现问题,也可能因版本、同步状态和资源占用拖慢工作;官方建议按项目收益选择,必要时使用明确的 lint、typecheck 等 CLI 检查替代。
启用方式
lsp: true 启用内置服务器,lsp: {} 保留内置并允许覆盖。只有检测到相应扩展名且满足要求时才会启动服务器。
省略 lsp 保持关闭;设置 false 可关闭其他配置层启用的 LSP。关闭某一项则使用 disabled: true。
运行前提
| 服务器 | 主要条件 |
|---|---|
| typescript、eslint、oxlint | 对应项目依赖 |
| pyright | 已安装 pyright 依赖 |
| csharp、fsharp | .NET SDK |
| razor | .NET SDK 与 VS Code C# 扩展 |
| jdtls | Java SDK 21+ |
| gopls | Go 命令 |
| rust | rust-analyzer 命令 |
| sourcekit-lsp | Swift,macOS 为 Xcode |
| deno | Deno,自动识别 deno.json/deno.jsonc |
| julials | Julia 与 LanguageServer.jl |
官方列出自动安装的 Astro、bash-language-server、clangd、Kotlin、Lua、Intelephense、Svelte、Terraform、Tinymist、Vue、yaml-language-server。其他支持项包括 clojure-lsp、Dart、Elixir、Gleam、HLS、nixd、ocamllsp、Prisma、Ruby 和 ZLS,仍需对应命令或运行时。
设置 OPENCODE_DISABLE_LSP_DOWNLOAD=true 可禁用自动下载;这不等于已经安装或启用服务器。
配置条目
条目支持 disabled、command、extensions、env 和 initialization。除仅禁用服务器的条目外,官方要求提供 command。
{
"$schema": "https://opencode.ai/config.json",
"lsp": {
"rust": {
"command": ["rust-analyzer"],
"env": {
"RUST_LOG": "debug"
}
}
}
}自定义服务器还要给出匹配的 extensions。initialization 在 LSP initialize 请求中传递服务器特定选项,不能把一个服务器的初始化字段套给另一个。
诊断与查询工具分开
启用服务器用于诊断,并不等于启用了实验性 lsp 工具。模型主动调用定义、引用等查询还需要对应实验开关和权限,见内置工具。
Intelephense 许可证
需要其付费能力时,官方要求只将 license key 放入文本文件:macOS/Linux 为 $HOME/intelephense/license.txt,Windows 为 %USERPROFILE%/intelephense/license.txt。不要添加注释或其他内容,也不要把私密 Key 放入共享仓库。