Índice de la documentación

// Documentación de Singularity

Servidores de lenguaje (LSP)

Un servidor de lenguaje da al editor una comprensión de tu código: analiza los archivos del proyecto y responde a las peticiones de completado, diagnóstico o navegación de Singularity.

Para qué sirve un servidor de lenguaje

El protocolo LSP separa el editor de la herramienta que entiende un lenguaje. Singularity abre tu archivo en CodeMirror y el servidor correspondiente analiza el texto y el proyecto. No tienes que configurar el protocolo: basta con activar el servidor del lenguaje que usas.

Un servidor no ejecuta tu programa y no sustituye ni al compilador ni a las pruebas. Sus respuestas son ayudas a la edición; valida siempre el resultado con las herramientas del proyecto.

Lenguajes compatibles

El panel LSP de Singularity 2.0.0 ofrece exactamente 31 servidores:

  • TypeScript y JavaScript; JSON; HTML; CSS, SCSS y Less
  • Rust; Go; Python (Pyright); Python (Ruff); C y C++; Java
  • Lua; TOML; YAML; Bash; Elixir; Ansible; Dart; Dockerfile
  • GraphQL; Haskell; PHP; Kotlin; Markdown; C#; PowerShell
  • Ruby; Swift; Svelte; Terraform; Vue; Zig

TypeScript/JavaScript, JSON, HTML y CSS están activados por defecto. Los demás servidores están desactivados al principio. Python y YAML tienen cada uno dos servidores posibles; el orden de registro determina cuál se encarga de un archivo cuando las extensiones se solapan.

Instalar un servidor

  1. Abre Settings y elige LSP.
  2. Comprueba que la integración LSP general está activa.
  3. Activa el interruptor del lenguaje deseado y abre un archivo correspondiente.

La línea del servidor indica su modo de arranque. Para una entrada npx, npm descarga si es necesario la versión por defecto fijada en su caché gestionada por npm. Para una entrada marcada on PATH, Singularity no descarga ningún binario: instala el servidor con la herramienta recomendada por su ecosistema y haz que su comando esté accesible en el PATH de la aplicación.

Panel LSP de los ajustes de Singularity con la lista de servidores
Settings → LSP centraliza la activación, el modo de arranque y las actualizaciones.

Actualizar

El panel comprueba las versiones al abrirse. Cuando todo está al día, Check for updates fuerza una nueva comprobación. Si hay varias versiones disponibles, despliega Details para revisarlas o elige Update all para instalarlas una tras otra.

Una versión fijada es la versión de referencia declarada por Singularity: el recurso a npx la usa en lugar de obtener a ciegas latest. Aun así, la comprobación puede proponer una versión más reciente. La actualización de los servidores npx realiza una instalación global de npm; los servidores proporcionados por el PATH deben actualizarse con su gestor habitual.

Qué aporta al editor

Las funciones realmente conectadas son el completado durante la escritura o con Ctrl+Space, la información al pasar el ratón, la ayuda de firma, los diagnósticos, las acciones rápidas, las sugerencias en línea y el esquema de símbolos del documento.

El menú contextual permite ir a la definición, a la definición de tipo o a la implementación, buscar las referencias, renombrar y formatear. La búsqueda de símbolos del proyecto está disponible con Cmd+T en macOS o Ctrl+T en los demás sistemas. Las importaciones automáticas, el formateo de una selección, los tokens semánticos y la vista previa integrada de una definición no están disponibles actualmente.

Diagnosticar un servidor que no arranca

Abre Help → Open Logs Folder o Help → Show Log File y busca las entradas con el ámbito lsp. Indican, entre otras cosas, un fallo de arranque, un error de ejecución o la salida de error del servidor.

  • Servidor on PATH: el comando no está instalado o el PATH visible para Singularity no lo contiene.
  • Servidor npx: falta Node.js, npm o el acceso al registro de npm.
  • El servidor está desactivado, la integración LSP general está desactivada o la extensión del archivo no coincide.
  • Dos servidores reclaman la misma extensión, sobre todo en Python o YAML.
  • El proyecto no contiene la configuración o el SDK que espera el servidor.

Tras corregirlo, cierra el archivo y vuelve a abrirlo. Para problemas más generales de arranque, registros o entorno, consulta Solución de problemas.