home / skills / melodic-software / claude-code-plugins / lsp-management

lsp-management skill

/plugins/claude-ecosystem/skills/lsp-management

npx playbooks add skill melodic-software/claude-code-plugins --skill lsp-management

Review the files below or copy the command above to add this skill to your agents.

Files (5)
SKILL.md
8.8 KB
---
name: lsp-management
description: LSP server recommendations, .lsp.json configuration, installation guides, and troubleshooting for Language Server Protocol in Claude Code
allowed-tools: Read, Glob, Grep, Skill
user-invocable: false
---

# LSP Management Skill

> ## 🚨 MANDATORY: Invoke docs-management First
>
> **STOP - Before providing ANY response about LSP configuration:**
>
> 1. **INVOKE** `docs-management` skill for Claude Code LSP documentation
> 2. **QUERY** for the user's specific LSP topic
> 3. **BASE** all responses on official documentation + this skill's knowledge base
>
> **Skipping this step results in outdated or incorrect information.**

## ⚠️ EXPERIMENTAL: Claude Code LSP Status

**LSP support in Claude Code is experimental and has known issues.** Key points:

| Requirement | Details |
|-------------|---------|
| **Environment Variable** | `ENABLE_LSP_TOOL=1` (singular) required to expose LSP tool |
| **Current Version** | v2.1.0+ has partial support (regression #17468) |
| **Stable Version** | v2.0.67 is last known stable LSP version |
| **Configuration** | `.lsp.json` at project root or `lspServers` in plugin.json |

**See [troubleshooting.md](references/troubleshooting.md) for version-specific issues and workarounds.**

## Overview

Central authority for Language Server Protocol (LSP) configuration in Claude Code. This skill provides:

- **LSP server recommendations** by language/technology
- **Configuration patterns** for `.lsp.json` files
- **Installation guides** for each recommended server
- **Troubleshooting** for common LSP issues

**Architecture:** Keyword registry + curated knowledge base. Delegates to docs-management for official Claude Code LSP documentation.

## When to Use This Skill

**Keywords:** LSP, language server, language-server-protocol, code intelligence, hover, go-to-definition, find-references, diagnostics, pyright, typescript-language-server, gopls, rust-analyzer, csharp-ls, .lsp.json, LSP configuration, LSP setup, LSP troubleshooting

**Use this skill when:**

- Setting up LSP servers for a project
- Choosing between LSP server options for a language
- Configuring `.lsp.json` files
- Troubleshooting LSP issues (hover not working, diagnostics missing, etc.)
- Understanding LSP server installation requirements
- Auto-detecting needed LSPs based on project file types

## Keyword Registry for docs-management Queries

Use these keywords when querying docs-management skill for official documentation:

### Core Concepts

| Topic | Keywords |
| --- | --- |
| LSP Overview | "LSP", "language server protocol", "code intelligence" |
| Configuration File | ".lsp.json", "LSP configuration", "language server config" |
| Features | "hover", "go-to-definition", "find-references", "diagnostics", "document symbols" |

### Server-Specific

| Topic | Keywords |
| --- | --- |
| Python | "pyright", "pylsp", "python language server" |
| TypeScript/JavaScript | "typescript-language-server", "vtsls", "tsserver" |
| Go | "gopls", "go language server" |
| Rust | "rust-analyzer", "rust language server" |
| C# | "csharp-ls", "OmniSharp", "C# language server" |
| C/C++ | "clangd", "ccls", "C++ language server" |

### Troubleshooting

| Topic | Keywords |
| --- | --- |
| Server Issues | "LSP not working", "language server crash", "LSP restart" |
| Feature Issues | "hover not working", "diagnostics missing", "go-to-definition failing" |
| Configuration Issues | "LSP config invalid", ".lsp.json error", "extension mapping" |

## Quick Decision Tree

**What do you need?**

1. **Set up LSP for a new project** → See [server-database.md](references/server-database.md) for recommended servers
2. **Configure .lsp.json** → See [configuration-patterns.md](references/configuration-patterns.md) for patterns
3. **Install a specific LSP server** → See [installation-guide.md](references/installation-guide.md) for per-server commands
4. **Fix LSP issues** → See [troubleshooting.md](references/troubleshooting.md) for common problems
5. **Understand Claude Code LSP support** → Query docs-management: "LSP configuration Claude Code"

## LSP Server Recommendations (Quick Reference)

| Language | Recommended Server | Why |
| --- | --- | --- |
| Python | Pyright | Fast, accurate type checking, broad ecosystem support |
| TypeScript/JavaScript | typescript-language-server | Official TypeScript support, widely used |
| Go | gopls | Official Go team server, comprehensive |
| Rust | rust-analyzer | De facto standard, excellent performance |
| C# | csharp-ls | Lightweight, cross-platform, dotnet tool |
| C/C++ | clangd | LLVM-backed, fast, accurate |
| Java | Eclipse JDTLS | Full-featured, widely supported |
| Ruby | solargraph | Type inference, documentation support |
| PHP | intelephense | Premium features, fast |
| Lua | lua-language-server | Official, well-maintained |
| YAML | yaml-language-server | Schema validation, completion |
| JSON | vscode-json-languageserver | Schema validation, formatting |

For detailed recommendations with alternatives and trade-offs, see [server-database.md](references/server-database.md).

## .lsp.json Configuration Format

Claude Code reads LSP configuration from `.lsp.json` in the project root.

**Basic Structure:**

```json
{
  "server-name": {
    "command": "server-executable",
    "args": ["--stdio"],
    "extensionToLanguage": {
      ".ext": "language-id"
    },
    "restartOnCrash": true,
    "maxRestarts": 3
  }
}
```

**Required Fields:**

| Field | Type | Description |
| --- | --- | --- |
| `command` | string | Executable command for the server |
| `args` | string[] | Command-line arguments (typically `["--stdio"]`) |
| `extensionToLanguage` | object | Maps file extensions to language IDs |

**Optional Fields:**

| Field | Type | Default | Description |
| --- | --- | --- | --- |
| `restartOnCrash` | boolean | `true` | Auto-restart server on crash |
| `maxRestarts` | number | `3` | Maximum restart attempts |

For complete patterns and examples, see [configuration-patterns.md](references/configuration-patterns.md).

## Auto-Detection Strategy

When auto-detecting needed LSPs for a project:

1. **Scan for file extensions** using Glob patterns
2. **Match extensions to languages** using the mapping table below
3. **Recommend servers** from server-database.md

### Extension to Language Mapping

| Extensions | Language | Recommended Server |
| --- | --- | --- |
| `.py`, `.pyi` | Python | pyright |
| `.ts`, `.tsx`, `.js`, `.jsx` | TypeScript/JavaScript | typescript-language-server |
| `.go` | Go | gopls |
| `.rs` | Rust | rust-analyzer |
| `.cs`, `.csx` | C# | csharp-ls |
| `.c`, `.h`, `.cpp`, `.hpp`, `.cc` | C/C++ | clangd |
| `.java` | Java | jdtls |
| `.rb` | Ruby | solargraph |
| `.php` | PHP | intelephense |
| `.lua` | Lua | lua-language-server |
| `.yaml`, `.yml` | YAML | yaml-language-server |
| `.json` | JSON | vscode-json-languageserver |

## Integration with Existing Infrastructure

### Relationship to audit-lsp

The `audit-lsp` command validates existing `.lsp.json` configurations. This skill provides:

- Server recommendations that audit-lsp can validate against
- Configuration patterns that audit-lsp checks for compliance
- Troubleshooting guidance when audit-lsp finds issues

### Relationship to setup-lsp

The `setup-lsp` command creates/updates `.lsp.json` configurations. This skill provides:

- Server database for recommendations
- Installation guides for chosen servers
- Configuration templates for generation

## Test Scenarios

These scenarios should activate this skill:

1. **Direct activation**: "Use the lsp-management skill to recommend a Python LSP"
2. **Setup question**: "How do I set up LSP for my TypeScript project?"
3. **Configuration question**: "What should my .lsp.json look like for Go?"
4. **Troubleshooting**: "My hover tooltips aren't working in Python files"
5. **Comparison**: "Should I use pyright or pylsp for Python?"

## Related Skills

| Skill | Relationship |
| --- | --- |
| **docs-management** | Delegates to for official Claude Code LSP documentation |
| **plugin-development** | Plugins can provide LSP configurations via `lspServers` field |

## References

**Detailed guides (load on-demand):**

- [Server Database](references/server-database.md) - Curated recommendations by language
- [Configuration Patterns](references/configuration-patterns.md) - Common .lsp.json patterns
- [Installation Guide](references/installation-guide.md) - Per-server installation commands
- [Troubleshooting](references/troubleshooting.md) - Common issues and fixes

**Official Documentation (via docs-management):**

- Query: "LSP configuration Claude Code"
- Query: ".lsp.json format"

## Version History

- **v1.0.0** (2026-01-11): Initial release
  - LSP server recommendations for 12+ languages
  - Configuration pattern documentation
  - Installation guides per server
  - Troubleshooting guide
  - Integration with audit-lsp and setup-lsp

---

## Last Updated

**Date:** 2026-01-11
**Model:** claude-opus-4-5-20251101