mcpField
L
lsp-setup

lsp-setup

github.com/github开发40.5k1.1k 次安装1 天前更新
代码仓库

关于 lsp-setup

用于为 GitHub Copilot CLI 安装和配置 Language Server Protocol 服务器的实用技能。它引导选择语言与配置范围、安装服务器、合并配置并验证;适用于 Copilot CLI,而非通用 IDE 设置。

主要功能

  1. 01选择语言和配置范围
  2. 02查找服务器设置说明
  3. 03安装语言服务器
  4. 04合并用户或仓库配置
  5. 05验证二进制文件与 JSON 配置

适用场景

  1. 01在 Copilot CLI 中启用代码智能
  2. 02配置 Java 代码导航
  3. 03向仓库配置添加语言服务器
  4. 04检查现有 LSP 设置

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/github/awesome-copilot --skill lsp-setup

安装后在 Claude Code 中输入/lsp-setup确认已加载。

附带文件references/java-jdtls.mdreferences/lsp-servers.md

详细介绍

GitHub Copilot CLI 的 LSP 设置

实用技能——为 Copilot CLI 安装并配置语言服务器协议服务器。 适用于:“设置 LSP”“安装语言服务器”“配置 Java 的 LSP”“添加 TypeScript LSP”“启用代码智能”“我需要跳转到定义”“查找引用不起作用”“需要更好的代码理解” 不适用于:常规编码任务、IDE/编辑器 LSP 配置、非 Copilot CLI 设置

工作流

  1. 询问语言——使用 ask_user 询问用户希望为哪些编程语言启用 LSP 支持
  2. 检测操作系统——运行 uname -s(或通过 $env:OS / %OS% 检查 Windows),以确定操作系统是 macOS、Linux 还是 Windows
  3. 查找 LSP 服务器——阅读 references/lsp-servers.md,了解已知服务器、安装命令和配置片段(对于 Java,还需阅读 references/java-jdtls.md)
  4. 询问配置范围——使用 ask_user 询问配置应设为用户级(~/.copilot/lsp-config.json)还是仓库级(.github/lsp.json)
  5. 安装服务器——针对检测到的操作系统运行相应的安装命令
  6. 写入配置——将新的服务器条目合并到选定的配置文件中(用户级使用 ~/.copilot/lsp-config.json;仓库级使用 .github/lsp.json)。如果文件不存在,则创建文件并保留现有条目。
  7. 验证——确认 LSP 二进制文件位于 $PATH 中,并且配置文件是有效的 JSON

配置格式

Copilot CLI 从用户级或仓库级位置读取 LSP 配置,且仓库级配置的优先级高于用户级配置:

  • 用户级:~/.copilot/lsp-config.json
  • 仓库级:.github/lsp.json(不会读取仓库根目录下的 lsp.json:在 Copilot CLI 1.0.95 中,copilot lsp list 会列出 .github/lsp.json 中的服务器,但不会列出根目录 lsp.json 中的服务器)

JSON 结构:

{
  "lspServers": {
    "<server-key>": {
      "command": "<binary>",
      "args": ["--stdio"],
      "fileExtensions": {
        ".<ext>": "<languageId>",
        ".<ext2>": "<languageId>"
      }
    }
  }
}
关键规则
  • command 是二进制文件名称(必须位于 $PATH 中)或绝对路径。
  • args 几乎总是包含 "--stdio",以使用标准输入/输出传输。
  • fileExtensions 将每个文件扩展名(带前导点)映射到语言 ID。
  • lspServers 中可以有多个服务器共存。
  • 将条目合并到现有文件时,切勿覆盖其他服务器条目——只添加或更新目标语言键。

行为

  • 询问用户选择语言或配置范围时,始终使用带有 choices 的 ask_user。
  • 如果 references/lsp-servers.md 中未列出该语言,则在网上搜索“ LSP server”,并引导用户进行手动配置。
  • 如果无法使用包管理器(例如,macOS 上没有 Homebrew),则建议使用参考文件中的替代安装方法。
  • 安装后,运行 which <binary>(Windows 上运行 where.exe)以确认二进制文件可访问。
  • 写入前,向用户展示最终的配置 JSON。
  • 如果配置文件已存在,先读取文件再进行合并——不要覆盖原有内容。

验证

设置完成后,告知用户:

  1. 输入 /exit 退出 Copilot CLI——必须执行此操作,新 LSP 配置才会在下次启动时加载
  2. 在包含所配置语言文件的项目中重新启动 copilot
  3. 运行 /lsp 检查服务器状态
  4. 尝试跳转到定义或悬停等代码智能功能

Java

对于 Java 语义导航,配置服务器后优先使用 lsp 工具(goToDefinition、findReferences、hover、incomingCalls),而不是 grep/view。Java 的 LSP 是可选的,并非构建或运行时诊断的前置条件。设置详情和故障排查请参阅 references/java-jdtls.md。

评论

支持 Markdown