Dropstone Docs

Serveurs LSP

Dropstone s'intègre avec vos serveurs LSP.

Dropstone peut s'intégrer avec votre Language Server Protocol (LSP) pour aider le LLM à interagir avec votre base de code. Il utilise les diagnostics pour fournir des retours au LLM.


Intégrés

Dropstone est livré avec plusieurs serveurs LSP intégrés pour les langages populaires :

Serveur LSPExtensionsExigences
astro.astroInstallation automatique pour les projets Astro
bash.sh, .bash, .zsh, .kshInstallation automatique de bash-language-server
clangd.c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++Installation automatique pour les projets C/C++
csharp.cs, .csx.NET SDK installé
clojure-lsp.clj, .cljs, .cljc, .ednCommande clojure-lsp disponible
dart.dartCommande dart disponible
deno.ts, .tsx, .js, .jsx, .mjsCommande deno disponible (détecte automatiquement deno.json/deno.jsonc)
elixir-ls.ex, .exsCommande elixir disponible
eslint.ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vueDépendance eslint dans le projet
fsharp.fs, .fsi, .fsx, .fsscript.NET SDK installé
gleam.gleamCommande gleam disponible
gopls.goCommande go disponible
hls.hs, .lhsCommande haskell-language-server-wrapper disponible
jdtls.javaJava SDK (version 21+) installé
julials.jljulia et LanguageServer.jl installés
kotlin-ls.kt, .ktsInstallation automatique pour les projets Kotlin
lua-ls.luaInstallation automatique pour les projets Lua
nixd.nixCommande nixd disponible
ocaml-lsp.ml, .mliCommande ocamllsp disponible
oxlint.ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelteDépendance oxlint dans le projet
php intelephense.phpInstallation automatique pour les projets PHP
prisma.prismaCommande prisma disponible
pyright.py, .pyiDépendance pyright installée
razor.razor, .cshtml.NET SDK et extension C# VS Code installés
ruby-lsp (rubocop).rb, .rake, .gemspec, .ruCommandes ruby et gem disponibles
rust.rsCommande rust-analyzer disponible
sourcekit-lsp.swift, .objc, .objcppswift installé (xcode sur macOS)
svelte.svelteInstallation automatique pour les projets Svelte
terraform.tf, .tfvarsInstallation automatique depuis les versions GitHub
tinymist.typ, .typcInstallation automatique depuis les versions GitHub
typescript.ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .ctsDépendance typescript dans le projet
vue.vueInstallation automatique pour les projets Vue
yaml-ls.yaml, .ymlInstallation automatique du yaml-language-server de Red Hat
zls.zig, .zonCommande zig disponible

Lorsque LSP est activé, les serveurs démarrent quand l'une des extensions ci-dessus est détectée et que les exigences sont satisfaites.


Fonctionnement

Lorsque LSP est activé et que dropstone ouvre un fichier, il :

  1. Vérifie l'extension du fichier par rapport à tous les serveurs LSP activés.
  2. Démarre le serveur LSP approprié s'il n'est pas déjà en cours d'exécution.

Configuration

Vous pouvez activer et personnaliser les serveurs LSP via la section lsp dans votre configuration dropstone.

Pour activer tous les serveurs LSP intégrés, définissez lsp à true.

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

Utilisez un objet pour garder les serveurs intégrés activés tout en configurant des remplacements ou des serveurs personnalisés.

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

Chaque entrée de serveur LSP configurée supporte les propriétés suivantes :

Les entrées de serveur ont besoin de command sauf s'ils désactivent uniquement un serveur.

PropriétéTypeDescription
disabledbooleanDéfinissez ceci à true pour désactiver le serveur LSP
commandstring[]La commande pour démarrer le serveur LSP
extensionsstring[]Extensions de fichier que ce serveur LSP doit gérer
envobjectVariables d'environnement à définir au démarrage du serveur
initializationobjectOptions d'initialisation à envoyer au serveur LSP

Regardons quelques exemples.


Variables d'environnement

Utilisez la propriété env pour définir les variables d'environnement au démarrage du serveur LSP :

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

Options d'initialisation

Utilisez la propriété initialization pour passer les options d'initialisation au serveur LSP. Ce sont des paramètres spécifiques au serveur envoyés lors de la requête LSP initialize :

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

Note:

Les options d'initialisation varient selon le serveur LSP. Consultez la documentation de votre serveur LSP pour connaître les options disponibles.


Désactiver les serveurs LSP

Si lsp est omis, tous les serveurs LSP sont désactivés. Pour désactiver tous les serveurs LSP après qu'une autre configuration les ait activés, définissez lsp à false :

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

Pour désactiver un serveur LSP spécifique, définissez disabled à true :

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

Serveurs LSP personnalisés

Vous pouvez ajouter des serveurs LSP personnalisés en spécifiant la commande et les extensions de fichier :

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

Informations supplémentaires

PHP Intelephense

PHP Intelephense offre des fonctionnalités premium via une clé de licence. Vous pouvez fournir une clé de licence en plaçant (uniquement) la clé dans un fichier texte à :

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

Le fichier doit contenir uniquement la clé de licence sans contenu supplémentaire.

Ctrl+I