← Claude Code Hub
✦ Tip #083 May 28, 2026

LSP en Claude Code: la navegación de código que tienes apagada sin saberlo

Claude Code trae una herramienta LSP integrada — goToDefinition, findReferences, diagnósticos de tipos — pero viene apagada. Y el error nº1 al encenderla es creer que el plugin hace algo que no hace.

Diagrama de code intelligence en Claude Code: a la izquierda grep devuelve ruido textual con falsos positivos tachados, a la derecha un grafo semántico limpio con goToDefinition y findReferences conectando la definición con sus referencias reales, y abajo la ecuación motor (binario) + cable (plugin) = navegación semántica

TL;DR Claude Code tiene una herramienta LSP integrada que le da navegación de código con precisión de compilador: goToDefinition, findReferences, diagnósticos de tipos automáticos tras cada edición. Pero viene apagada: necesitas (1) instalar el binario del language server (npm install -g typescript-language-server typescript), (2) instalar el plugin de code intelligence (/plugin install typescript-lsp@claude-plugins-official) y (3) /reload-plugins. El error nº1: instalar solo el plugin. El plugin no instala el binario — es solo el adaptador. Lo confirma su propio README oficial.

Soy heavy user de Claude Code y descubrí esto hace literalmente una hora. Al probar la herramienta LSP sobre un archivo .ts me devolvía No LSP server available for file type: .ts: la navegación con precisión de IDE estaba ahí, integrada, pero apagada. La encendimos para TypeScript en tres pasos — y hay plugins oficiales para Rust, Python, Go y ocho lenguajes más.

Sin LSP, cuando le pides a Claude "¿dónde se define greet y quién la llama?", la respuesta sale de grep: te devuelve todas las coincidencias textuales — comentarios, strings, greeting, greetUser, la definición y las llamadas, todo mezclado. Claude tiene que abrir varios archivos para desambiguar, cargando contexto que no necesita. Con LSP, goToDefinition devuelve una ubicación exacta, resuelta semánticamente. Cero falsos positivos, cero lecturas de desambiguación.

Lo que gana Claude

Capacidad Qué hace
goToDefinition Salta a la definición exacta de un símbolo (no la primera coincidencia de texto)
findReferences Lista las referencias reales, resueltas por scope — no grep
hover Firma de tipos e info al vuelo: function greet(user: User): string
Diagnósticos automáticos Tras cada edición, el server reporta errores de tipo en el mismo turno

El beneficio más infravalorado son los diagnósticos automáticos. Sin LSP, el bucle para validar un cambio es: edito → corro tsc (que vuelca muchísimo output a contexto) → leo errores → re-edito. Con LSP, si introduzco un import roto o un tipo incorrecto, Claude lo ve y lo arregla en el mismo turno, sin el volcado del compilador.

El malentendido que te va a morder

El plugin no instala el language server. Su README oficial lo deja claro — su sección de instalación es literalmente npm install -g typescript-language-server typescript. Hay dos piezas distintas:

Pieza Qué es Quién la instala
El binario (typescript-language-server) El motor que entiende los tipos , vía npm install -g
El plugin (typescript-lsp) El adaptador: ~15 líneas que dicen "para .ts, lanza este binario" /plugin install

Si instalas solo el plugin, verás Executable not found in $PATH en la pestaña Errors de /plugin. El plugin es el cable, no el aparato.

Encenderlo (TypeScript, 3 pasos)

# 1. El motor (lo instalas tú, prerequisito)
npm install -g typescript-language-server typescript

# 2. El adaptador (plugin oficial de Anthropic)
/plugin install typescript-lsp@claude-plugins-official

# 3. Activar en la sesión actual
/reload-plugins

A partir de ahí, abre cualquier .ts/.tsx/.js/.jsx y Claude navega con precisión de compilador y ve los errores de tipo al instante. Pulsa Ctrl+O cuando aparezca el indicador "diagnostics found" para verlos inline.

Lenguajes con plugin oficial

Cada uno necesita su binario instalado aparte:

Lenguaje Plugin Binario
TypeScript typescript-lsp typescript-language-server
Python pyright-lsp pyright-langserver
Rust rust-analyzer-lsp rust-analyzer
Go gopls-lsp gopls
C/C++ clangd-lsp clangd
C# csharp-lsp csharp-ls
Java jdtls-lsp jdtls
PHP php-lsp intelephense
Lua, Kotlin, Swift lua-lsp, kotlin-lsp, swift-lsp (ver docs)

El matiz "semi-automático"

Si Claude Code detecta que ya tienes el binario en el PATH al abrir un proyecto, te ofrece instalar el plugin correspondiente. No se instala solo en silencio — tú apruebas. Pero el binario sigue siendo prerequisito tuyo: Claude Code nunca lo instala por ti.

Aviso honesto: los language servers consumen memoria (rust-analyzer y pyright notablemente en monorepos grandes). Si te da problemas, /plugin disable <plugin> y Claude vuelve a sus herramientas de búsqueda. El ahorro es de tokens y precisión, no de RAM.

Combina esto con /run-skill-generator para cerrar el bucle: navegación semántica + ejecución real de la app.

Documentación oficial: Code intelligence — Claude Code Docs · Catálogo: claude.com/plugins

Guía gratuita

51 tips para dominar Claude Code.

Una página por tip. Cinco capítulos. Lo que de verdad uso a diario en producción — sin teoría, sin humo.

  • I. Empieza bien 10 tips
  • II. Conciencia 3 tips
  • III. Maestría 22 tips
  • IV. Autonomía 10 tips
  • V. Comparativa 6 tips
¿Eres desarrollador/a Web profesional?

Recibirás la guía por email · Te unes a la newsletter Gravitas · Cancela cuando quieras

de 51
#

Wmedia · 51 Tips
Guía gratuita · 51 tips · 5 capítulos

51 tips para dominar Claude Code.

¿Eres desarrollador/a Web profesional? · Cancela cuando quieras