关于 lsp-setup
用于为 GitHub Copilot CLI 安装和配置 Language Server Protocol 服务器的实用技能。它引导选择语言与配置范围、安装服务器、合并配置并验证;适用于 Copilot CLI,而非通用 IDE 设置。
主要功能
- 01选择语言和配置范围
- 02查找服务器设置说明
- 03安装语言服务器
- 04合并用户或仓库配置
- 05验证二进制文件与 JSON 配置
适用场景
- 01在 Copilot CLI 中启用代码智能
- 02配置 Java 代码导航
- 03向仓库配置添加语言服务器
- 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 设置
工作流
- 询问语言——使用
ask_user询问用户希望为哪些编程语言启用 LSP 支持 - 检测操作系统——运行
uname -s(或通过$env:OS/%OS%检查 Windows),以确定操作系统是 macOS、Linux 还是 Windows - 查找 LSP 服务器——阅读
references/lsp-servers.md,了解已知服务器、安装命令和配置片段(对于 Java,还需阅读references/java-jdtls.md) - 询问配置范围——使用
ask_user询问配置应设为用户级(~/.copilot/lsp-config.json)还是仓库级(.github/lsp.json) - 安装服务器——针对检测到的操作系统运行相应的安装命令
- 写入配置——将新的服务器条目合并到选定的配置文件中(用户级使用
~/.copilot/lsp-config.json;仓库级使用.github/lsp.json)。如果文件不存在,则创建文件并保留现有条目。 - 验证——确认 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。
- 如果配置文件已存在,先读取文件再进行合并——不要覆盖原有内容。
验证
设置完成后,告知用户:
- 输入
/exit退出 Copilot CLI——必须执行此操作,新 LSP 配置才会在下次启动时加载 - 在包含所配置语言文件的项目中重新启动
copilot - 运行
/lsp检查服务器状态 - 尝试跳转到定义或悬停等代码智能功能
Java
对于 Java 语义导航,配置服务器后优先使用 lsp 工具(goToDefinition、findReferences、hover、incomingCalls),而不是 grep/view。Java 的 LSP 是可选的,并非构建或运行时诊断的前置条件。设置详情和故障排查请参阅 references/java-jdtls.md。
评论
支持 Markdown