Saltar al contenido
pando/ docs

Referencia de servidores de lenguaje

Todas las opciones de los servidores de lenguaje (LSP). La explicación está en Autoactivación de LSP y el paso a paso en la guía Que Pando vea los fallos mientras escribe.

Interruptores generales

Claves de primer nivel en .pando.toml.

ClavePor defectoQué hace
LSPAutoActivatetrueArranca un servidor de lenguaje cuando hace falta. false lo desactiva del todo
LSPActivateOn"edits"Qué puede despertar a un servidor: "edits" (ficheros que Pando edita, o cuando pide los problemas), "reads" (también ficheros leídos o abiertos en el visor y el árbol de ficheros), "workspace" (también ficheros cambiados fuera de Pando; vigila todo el proyecto), "off"
LSPAutoInstalltrueInstala en ~/.config/pando/lsp los servidores que faltan y se distribuyen como paquetes npm
LSPRunner"auto"Quién los instala: "auto" (bun si está, npm si no), "bun", "npm", "off" (no instala nunca; usa solo lo que ya esté en tu PATH)
LSPStartupTimeout"20s"Cuánto se espera a que un servidor esté listo
LSPInstallTimeout"120s"Espera más larga mientras se instala un servidor

Los servidores que vienen con las herramientas del propio lenguaje (gopls, rust-analyzer, clangd…) no se instalan nunca por ti: Pando te dice el comando que tienes que ejecutar.

Con "workspace", Pando se salta las carpetas habituales sin código fuente: .git, node_modules, vendor, dist, build, target, out.

Una sección por servidor

[LSP]

# Change a built-in server
[LSP.gopls]
Disabled  = false
Autostart = true          # start when Pando starts, not on the first file
Command   = 'gopls'
Args      = ['-remote=auto']
Languages = ['.go']
Filenames = []

# Add your own
[LSP.my-custom-lsp]
Command   = 'my-lsp'
Args      = ['--stdio']
Languages = ['.mylang']
ClaveQué hace
Command, ArgsEl programa y sus argumentos
LanguagesExtensiones de fichero de las que se ocupa este servidor
FilenamesNombres de fichero exactos, para ficheros cuya extensión no dice nada (Dockerfile, CMakeLists.txt, Gemfile)
Autostartfalse (por defecto): arranca con el primer fichero que le toca. true: arranca con Pando
Disabledtrue: no arranca nunca, aunque esté instalado

Los campos que dejas vacíos se toman del servidor integrado con el mismo nombre. Lo que tú escribes siempre gana.

Algunos servidores integrados están apagados hasta que los nombras, porque necesitan configuración del proyecto o compiten con uno general: eslint-language-server, biome, sql-language-server y deno. Basta una sección vacía: [LSP.biome].

Servidores integrados

El catálogo cubre más de cuarenta lenguajes. Los más habituales:

LenguajeServidorPrograma
Gogoplsgopls
TypeScript / JavaScripttypescript-language-servertypescript-language-server
Pythonpyrightpyright
Rustrust-analyzerrust-analyzer
C / C++clangdclangd
Javajdtlsjdtls
Rubysolargraphsolargraph
PHPphpactorphpactor
Swiftsourcekit-lspsourcekit-lsp
Kotlinkotlin-language-serverkotlin-language-server

La lista completa, con lo que hay instalado en tu máquina, está en Configuración > LSP > Built-in catalogue.

Dónde aparecen los problemas

  • En la barra de estado de la TUI: número de errores y avisos.
  • En el editor: junto a la línea, mientras recorres un fichero.
  • Para el agente: la herramienta diagnostics devuelve los problemas de cualquier fichero.