设置LSP服务器Skill setup-lsp

这个技能用于自动检测项目中的编程语言,研究并配置语言服务器协议(LSP)服务器,以在Claude Code中启用代码智能功能,如代码补全、错误检查和导航。它通过查询最新推荐、生成.lsp.json和项目配置文件,提升开发效率和代码质量。关键词:LSP设置、语言服务器、自动化配置、代码分析、Claude Code、开发工具、SEO优化。

DevOps 0 次安装 0 次浏览 更新于 3/11/2026

名称: setup-lsp 描述: 为当前项目设置LSP服务器 - 自动检测语言,研究推荐,配置.lsp.json 允许工具: Read, Glob, Grep, Bash, Write, Edit, Skill, AskUserQuestion, mcp__perplexity__搜索, mcp__context7__查询文档 参数提示: “[语言|–auto|–check|–research <语言>]”

设置LSP命令

为Claude Code项目交互式设置LSP服务器。

初始化

  1. 加载 lsp-management 技能以获取服务器推荐和配置模式。
  2. 检查项目根目录中是否存在现有的 .lsp.json 文件。
  3. 解析命令参数以确定模式。

参数解析

参数 模式 描述
(无) 交互式 扫描项目,询问用户要配置什么
--auto 自动 自动检测并配置,无需提示
--check 检查 报告已安装的LSP和可用更新
--research <语言> 研究 查询MCP以获取某个语言的最新推荐
<语言> 单语言 仅配置特定语言的LSP

模式:交互式(默认)

当未提供参数时:

步骤1:扫描项目

扫描文件扩展名以检测使用的语言:

# 查找所有独特的文件扩展名
find . -type f -name "*.*" | sed 's/.*\.//' | sort -u

或使用Glob查找特定语言文件:

  • **/*.py - Python
  • **/*.ts, **/*.tsx, **/*.js, **/*.jsx - TypeScript/JavaScript
  • **/*.go - Go
  • **/*.rs - Rust
  • **/*.cs - C#
  • **/*.c, **/*.cpp, **/*.h - C/C++

步骤2:呈现发现

使用AskUserQuestion让用户选择:

"我检测到您的项目中使用以下语言:Python, TypeScript, C#。您想做什么?"

选项:
1. "配置所有检测到的语言(推荐)" - 为所有语言设置LSP
2. "选择特定语言进行配置" - 选择哪些语言
3. "先研究最新推荐" - 在配置前查询MCP
4. "检查现有配置" - 查看当前的.lsp.json

步骤3:配置选定语言

对于每种要配置的语言:

  1. lsp-management 技能加载服务器推荐
  2. 检查服务器是否已安装(运行 <命令> --version
  3. 如果未安装,显示技能中的安装命令
  4. 生成 .lsp.json 条目

步骤4:生成配置

创建或更新 .lsp.json 并添加生成的条目。

如果 .lsp.json 已存在,使用AskUserQuestion:

".lsp.json 已存在。我应该如何处理?"

选项:
1. "与现有配置合并(推荐)" - 添加新条目,保留现有
2. "替换现有配置" - 完全覆盖
3. "显示将更改的内容" - 差异预览

步骤5:验证

配置后:

  1. 显示最终的 .lsp.json 内容
  2. 建议运行 /audit-lsp 进行验证
  3. 注意可能需要重启Claude Code以获取更改

模式:自动(–auto)

当提供 --auto 标志时:

  1. 扫描项目中的语言(同交互式步骤1)
  2. 对于每种检测到的语言:
    • 使用技能推荐的服务器
    • 检查是否已安装
    • 如果未安装,警告但继续
  3. 生成/合并 .lsp.json
  4. 报告结果

在此模式下不使用AskUserQuestion提示。

模式:检查(–check)

当提供 --check 标志时:

  1. 读取现有的 .lsp.json
  2. 对于每个配置的服务器:
    • 检查命令是否可用
    • 获取当前版本
    • 查询最新版本(如果可行)
  3. 报告状态表:
| 服务器 | 已安装 | 版本 | 状态 |
| --- | --- | --- | --- |
| pyright | ✓ | 1.1.350 | 最新 |
| typescript-language-server | ✓ | 4.3.0 | 有更新可用 (4.4.0) |
| csharp-ls | ✗ | - | 未安装 |

模式:研究(–research <语言>)

当提供 --research <语言> 时:

  1. 查询MCP服务器以获取最新推荐:

    mcp__perplexity__搜索: "最佳 <语言> 语言服务器 2026 LSP"
    mcp__context7__查询文档: "<语言> LSP 服务器"
    
  2. 与技能推荐进行比较

  3. 向用户呈现发现

  4. 询问是否要继续配置

模式:单语言

当提供语言名称时(例如,/setup-lsp python):

  1. 在技能的服务器数据库中查找语言
  2. 检查服务器是否已安装
  3. 如果未安装,提供安装命令
  4. 仅为该语言生成/更新 .lsp.json 条目

服务器安装检测

检查服务器是否已安装:

# 尝试使用版本标志运行
<命令> --version 2>/dev/null && echo "已安装" || echo "未安装"

常见命令:

服务器 检查命令
pyright pyright-langserver --version
typescript-language-server typescript-language-server --version
gopls gopls version
rust-analyzer rust-analyzer --version
csharp-ls csharp-ls --version
clangd clangd --version

示例输出

交互式会话

用户: /setup-lsp

Claude: 正在扫描项目语言...

发现: Python (.py), TypeScript (.ts, .tsx), JSON (.json)

我检测到Python、TypeScript和JSON文件。您想做什么?

[用户选择“配置所有检测到的语言”]

检查服务器安装...
✓ pyright-langserver 已安装 (1.1.350)
✓ typescript-language-server 已安装 (4.3.0)
✓ vscode-json-language-server 已安装 (1.3.4)

生成的 .lsp.json:
{
  "pyright": { ... },
  "typescript": { ... },
  "json": { ... }
}

配置完成!运行 /audit-lsp 进行验证。

自动模式

用户: /setup-lsp --auto

Claude: 自动检测语言并配置LSP...

检测到: Python, TypeScript
已配置: pyright, typescript-language-server
创建: .lsp.json

完成。重启Claude Code以激活LSP服务器。

研究模式

用户: /setup-lsp --research rust

Claude: 正在研究Rust LSP服务器...

[查询MCP服务器]

当前推荐: rust-analyzer
- 官方Rust项目
- 全面功能
- 活跃开发

替代方案: 无 (rust-analyzer是事实标准)

您想让我为您的项目配置rust-analyzer吗?

错误处理

未检测到语言

“我无法在此项目中检测到任何编程语言。
您想手动指定要配置的语言吗?”

服务器未安装

“pyright-langserver 未安装。使用以下命令安装:
  npm install -g pyright

您想让我继续配置吗?
(LSP在服务器安装前将无法工作)”

无效的 .lsp.json

“现有的 .lsp.json 有语法错误。
您想让我:
1. 修复语法并继续
2. 备份并创建新配置
3. 显示错误”

项目配置检测

关键: .lsp.json 告诉Claude Code如何启动LSP服务器,但项目配置文件告诉LSP服务器如何分析代码。

检测语言后,检查所需项目级配置:

语言 所需项目配置 检查方法
Python pyrightconfig.json[tool.pyright]pyproject.toml Glob查找文件,解析TOML部分
TypeScript/JavaScript tsconfig.json Glob查找文件
C# *.sln*.csproj Glob查找解决方案/项目文件
Go go.mod Glob查找文件
Rust Cargo.toml Glob查找文件

步骤:项目配置验证

语言检测后、生成 .lsp.json 前:

  1. 对于每种检测到的语言,检查项目配置是否存在
  2. 如果缺失,报告:“检测到Python但未找到 pyrightconfig.json
  3. 询问用户:“您想让我生成项目配置以获得完整的LSP支持吗?”

步骤:项目配置生成

当项目配置缺失时:

  1. 查询MCP以获取最新最佳实践:

    mcp__perplexity__搜索: "pyrightconfig.json 最佳实践 2026 typeCheckingMode"
    mcp__perplexity__搜索: "tsconfig.json 2026 NodeNext strict ES2024"
    mcp__context7__查询文档: 查询 /microsoft/pyright 或 /websites/typescriptlang
    
  2. 基于项目结构和MCP研究生成配置

  3. 向用户呈现并解释关键设置

  4. 在写入文件前请求确认

  5. 将文件写入项目根目录

MCP验证的项目配置模板

在生成前查询MCP服务器以获取当前最佳实践。以下是基线模板:

Python (pyrightconfig.json)

{
  "include": ["src", "plugins"],
  "exclude": ["**/node_modules", "**/__pycache__", "**/.venv"],
  "venvPath": ".",
  "venv": ".venv",
  "typeCheckingMode": "standard",
  "pythonVersion": "3.13",
  "pythonPlatform": "All"
}

查询MCP的关键设置:

  • typeCheckingMode: “off” | “basic” | “standard” | “strict” | “all”
  • pythonVersion: 检查当前稳定版本 (3.13/3.14)

TypeScript (tsconfig.json)

{
  "$schema": "https://json.schemastore.org/tsconfig",
  "compilerOptions": {
    "target": "ES2022",
    "lib": ["ES2024"],
    "module": "NodeNext",
    "moduleResolution": "NodeNext",
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true,
    "noEmit": true
  },
  "include": ["src/**/*.ts"],
  "exclude": ["node_modules"]
}

查询MCP的关键设置:

  • module/moduleResolution: 现代选项如 “NodeNext”
  • target/lib: 当前ES版本

C# (.sln 用于根检测)

C# LSP服务器 (csharp-ls) 需要 .sln.csproj 文件进行根检测。如果不存在:

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Global
 GlobalSection(SolutionProperties) = preSolution
  HideSolutionNode = FALSE
 EndGlobalSection
EndGlobal

查询MCP的要求:

  • .NET SDK 版本 (当前10.0 LTS)
  • csharp-ls 版本要求

语义功能故障排除

如果诊断工作但悬停/转到定义/文档符号不工作:

  1. 检查项目配置是否存在 - LSP服务器需要项目配置以实现语义功能
  2. 验证 ENABLE_LSP_TOOL=1 - Claude Code LSP所需的环境变量
  3. 重启Claude Code - 配置更改后LSP服务器可能需要重新索引
  4. 检查服务器日志 - 查找初始化错误

重要注意事项

  • 此命令在项目根目录创建/修改 .lsp.json
  • 项目配置 (pyrightconfig.json, tsconfig.json 等) 启用完整的语义功能
  • 必须重启Claude Code以获取新的LSP配置
  • 设置后使用 /audit-lsp 验证配置
  • lsp-management 技能提供所有服务器推荐
  • 设置 ENABLE_LSP_TOOL=1 环境变量以访问LSP工具