跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

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# 扩展
jdtlsJava SDK 21+
goplsGo 命令
rustrust-analyzer 命令
sourcekit-lspSwift,macOS 为 Xcode
denoDeno,自动识别 deno.json/deno.jsonc
julialsJulia 与 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 放入共享仓库。