Dropstone Docs

Formateurs

Dropstone utilise des formateurs spécifiques au langage.

Dropstone peut formater les fichiers après leur écriture ou modification en utilisant des formateurs spécifiques au langage. Les formateurs sont désactivés par défaut ; activez-les dans votre configuration avant que Dropstone ne les exécute.


Intégrés

Dropstone est livré avec plusieurs formateurs intégrés pour les langages et frameworks populaires. Voici une liste des formateurs, des extensions de fichiers supportées, et des commandes ou options de configuration dont il a besoin.

FormateurExtensionsPrérequis
air.Rcommande air disponible
biome.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, et plusfichier de configuration biome.json(c)
cargofmt.rscommande cargo fmt disponible
clang-format.c, .cpp, .h, .hpp, .ino, et plusfichier de configuration .clang-format
cljfmt.clj, .cljs, .cljc, .edncommande cljfmt disponible
dart.dartcommande dart disponible
dfmt.dcommande dfmt disponible
gleam.gleamcommande gleam disponible
gofmt.gocommande gofmt disponible
htmlbeautifier.erb, .html.erbcommande htmlbeautifier disponible
ktlint.kt, .ktscommande ktlint disponible
mix.ex, .exs, .eex, .heex, .leex, .neex, .sfacecommande mix disponible
nixfmt.nixcommande nixfmt disponible
ocamlformat.ml, .mlicommande ocamlformat disponible et fichier de configuration .ocamlformat
ormolu.hscommande ormolu disponible
pint.phpdépendance laravel/pint dans composer.json
prettier.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, et plusdépendance prettier dans package.json
rubocop.rb, .rake, .gemspec, .rucommande rubocop disponible
ruff.py, .pyicommande ruff disponible avec configuration
rustfmt.rscommande rustfmt disponible
shfmt.sh, .bashcommande shfmt disponible
standardrb.rb, .rake, .gemspec, .rucommande standardrb disponible
terraform.tf, .tfvarscommande terraform disponible
uv.py, .pyicommande uv disponible
zig.zig, .zoncommande zig disponible

Lorsque les formateurs sont activés, Dropstone utilisera prettier pour les fichiers correspondants si votre projet a prettier dans package.json.


Fonctionnement

Lorsque Dropstone écrit ou modifie un fichier et que les formateurs sont activés, il :

  1. Vérifie l'extension du fichier par rapport à tous les formateurs activés.
  2. Exécute la commande de formateur appropriée sur le fichier.
  3. Applique les modifications de formatage.

Ce processus se déroule en arrière-plan pour les formateurs activés.


Configurer

Vous pouvez activer et personnaliser les formateurs via la section formatter dans votre configuration Dropstone.

Pour activer tous les formateurs intégrés, définissez formatter sur true.

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

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

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

Chaque configuration de formateur supporte les propriétés suivantes :

PropriétéTypeDescription
disabledbooleanDéfinissez ceci sur true pour désactiver le formateur
commandstring[]La commande à exécuter pour le formatage. Requise pour les formateurs personnalisés ; optionnelle pour les formateurs intégrés.
environmentobjectVariables d'environnement à définir lors de l'exécution du formateur
extensionsstring[]Extensions de fichier que ce formateur doit gérer

Regardons quelques exemples.


Désactiver les formateurs

Si formatter est omis, tous les formateurs sont désactivés. Pour désactiver tous les formateurs après qu'une autre configuration les ait activés, définissez formatter sur false :

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

Pour désactiver un formateur spécifique, définissez disabled sur true :

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

Formateurs personnalisés

Vous pouvez configurer les formateurs intégrés avec des options comme environment ou extensions. Pour ajouter un formateur personnalisé, spécifiez une command et des extensions :

{
  "$schema": "https://dropstone.io/schema/config.json",
  "formatter": {
    "prettier": {
      "command": ["npx", "prettier", "--write", "$FILE"],
      "environment": {
        "NODE_ENV": "development"
      },
      "extensions": [".js", ".ts", ".jsx", ".tsx"]
    },
    "custom-markdown-formatter": {
      "command": ["deno", "fmt", "$FILE"],
      "extensions": [".md"]
    }
  }
}

Le placeholder $FILE dans la commande sera remplacé par le chemin du fichier en cours de formatage.

Ctrl+I