Dropstone Docs

Servidores LSP

Dropstone se integra con tus servidores LSP.

Dropstone puede integrarse con tu Protocolo de Servidor de Lenguaje (LSP) para ayudar al LLM a interactuar con tu base de código. Utiliza diagnósticos para proporcionar retroalimentación al LLM.


Integrados

Dropstone viene con varios servidores LSP integrados para lenguajes populares:

Servidor LSPExtensionesRequisitos
astro.astroSe instala automáticamente para proyectos Astro
bash.sh, .bash, .zsh, .kshSe instala automáticamente bash-language-server
clangd.c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++Se instala automáticamente para proyectos C/C++
csharp.cs, .csx.NET SDK instalado
clojure-lsp.clj, .cljs, .cljc, .ednComando clojure-lsp disponible
dart.dartComando dart disponible
deno.ts, .tsx, .js, .jsx, .mjsComando deno disponible (detecta automáticamente deno.json/deno.jsonc)
elixir-ls.ex, .exsComando elixir disponible
eslint.ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vueDependencia eslint en el proyecto
fsharp.fs, .fsi, .fsx, .fsscript.NET SDK instalado
gleam.gleamComando gleam disponible
gopls.goComando go disponible
hls.hs, .lhsComando haskell-language-server-wrapper disponible
jdtls.javaJava SDK (versión 21+) instalado
julials.jljulia y LanguageServer.jl instalados
kotlin-ls.kt, .ktsSe instala automáticamente para proyectos Kotlin
lua-ls.luaSe instala automáticamente para proyectos Lua
nixd.nixComando nixd disponible
ocaml-lsp.ml, .mliComando ocamllsp disponible
oxlint.ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelteDependencia oxlint en el proyecto
php intelephense.phpSe instala automáticamente para proyectos PHP
prisma.prismaComando prisma disponible
pyright.py, .pyiDependencia pyright instalada
razor.razor, .cshtml.NET SDK y extensión C# de VS Code instalados
ruby-lsp (rubocop).rb, .rake, .gemspec, .ruComandos ruby y gem disponibles
rust.rsComando rust-analyzer disponible
sourcekit-lsp.swift, .objc, .objcppswift instalado (xcode en macOS)
svelte.svelteSe instala automáticamente para proyectos Svelte
terraform.tf, .tfvarsSe instala automáticamente desde GitHub releases
tinymist.typ, .typcSe instala automáticamente desde GitHub releases
typescript.ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .ctsDependencia typescript en el proyecto
vue.vueSe instala automáticamente para proyectos Vue
yaml-ls.yaml, .ymlSe instala automáticamente Red Hat yaml-language-server
zls.zig, .zonComando zig disponible

Cuando LSP está habilitado, los servidores se inician cuando se detecta una de las extensiones de archivo anteriores y se cumplen los requisitos.


Cómo funciona

Cuando LSP está habilitado y dropstone abre un archivo, hace lo siguiente:

  1. Verifica la extensión del archivo contra todos los servidores LSP habilitados.
  2. Inicia el servidor LSP apropiado si no está ya en ejecución.

Configurar

Puedes habilitar y personalizar servidores LSP a través de la sección lsp en tu configuración de dropstone.

Para habilitar todos los servidores LSP integrados, establece lsp en true.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "lsp": true
}

Usa un objeto para mantener los integrados habilitados mientras configuras anulaciones o servidores personalizados.

{
  "$schema": "https://dropstone.io/schema/config.json",
  "lsp": {}
}

Cada entrada de servidor LSP configurada admite lo siguiente:

Las entradas de servidor necesitan command a menos que solo deshabiliten un servidor.

PropiedadTipoDescripción
disabledbooleanEstablece esto en true para deshabilitar el servidor LSP
commandstring[]El comando para iniciar el servidor LSP
extensionsstring[]Extensiones de archivo que este servidor LSP debe manejar
envobjectVariables de entorno a establecer al iniciar el servidor
initializationobjectOpciones de inicialización a enviar al servidor LSP

Veamos algunos ejemplos.


Variables de entorno

Usa la propiedad env para establecer variables de entorno al iniciar el servidor LSP:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "lsp": {
    "rust": {
      "command": ["rust-analyzer"],
      "env": {
        "RUST_LOG": "debug"
      }
    }
  }
}

Opciones de inicialización

Usa la propiedad initialization para pasar opciones de inicialización al servidor LSP. Estas son configuraciones específicas del servidor enviadas durante la solicitud LSP initialize:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "lsp": {
    "custom-lsp": {
      "command": ["custom-lsp-server", "--stdio"],
      "extensions": [".custom"],
      "initialization": {
        "preferences": {
          "importModuleSpecifierPreference": "relative"
        }
      }
    }
  }
}

Note:

Las opciones de inicialización varían según el servidor LSP. Consulta la documentación de tu servidor LSP para conocer las opciones disponibles.


Deshabilitar servidores LSP

Si se omite lsp, todos los servidores LSP se deshabilitan. Para deshabilitar todos los servidores LSP después de que otra configuración los haya habilitado, establece lsp en false:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "lsp": false
}

Para deshabilitar un servidor LSP específico, establece disabled en true:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "lsp": {
    "typescript": {
      "disabled": true
    }
  }
}

Servidores LSP personalizados

Puedes agregar servidores LSP personalizados especificando el comando y las extensiones de archivo:

{
  "$schema": "https://dropstone.io/schema/config.json",
  "lsp": {
    "custom-lsp": {
      "command": ["custom-lsp-server", "--stdio"],
      "extensions": [".custom"]
    }
  }
}

Información adicional

PHP Intelephense

PHP Intelephense ofrece características premium a través de una clave de licencia. Puedes proporcionar una clave de licencia colocando (solo) la clave en un archivo de texto en:

  • En macOS/Linux: $HOME/intelephense/license.txt
  • En Windows: %USERPROFILE%/intelephense/license.txt

El archivo debe contener solo la clave de licencia sin contenido adicional.

Ctrl+I