Skip to content
FunCoding

Search

Search docs, Skills and MCP

LSP 服务器

显式启用语言诊断,核对运行条件、下载控制和自定义服务器。

This page has not been translated into English yet. The original Chinese version is shown below.

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 放入共享仓库。