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.
| Formateur | Extensions | Prérequis |
|---|---|---|
| air | .R | commande air disponible |
| biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, et plus | fichier de configuration biome.json(c) |
| cargofmt | .rs | commande cargo fmt disponible |
| clang-format | .c, .cpp, .h, .hpp, .ino, et plus | fichier de configuration .clang-format |
| cljfmt | .clj, .cljs, .cljc, .edn | commande cljfmt disponible |
| dart | .dart | commande dart disponible |
| dfmt | .d | commande dfmt disponible |
| gleam | .gleam | commande gleam disponible |
| gofmt | .go | commande gofmt disponible |
| htmlbeautifier | .erb, .html.erb | commande htmlbeautifier disponible |
| ktlint | .kt, .kts | commande ktlint disponible |
| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | commande mix disponible |
| nixfmt | .nix | commande nixfmt disponible |
| ocamlformat | .ml, .mli | commande ocamlformat disponible et fichier de configuration .ocamlformat |
| ormolu | .hs | commande ormolu disponible |
| pint | .php | dépendance laravel/pint dans composer.json |
| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, et plus | dépendance prettier dans package.json |
| rubocop | .rb, .rake, .gemspec, .ru | commande rubocop disponible |
| ruff | .py, .pyi | commande ruff disponible avec configuration |
| rustfmt | .rs | commande rustfmt disponible |
| shfmt | .sh, .bash | commande shfmt disponible |
| standardrb | .rb, .rake, .gemspec, .ru | commande standardrb disponible |
| terraform | .tf, .tfvars | commande terraform disponible |
| uv | .py, .pyi | commande uv disponible |
| zig | .zig, .zon | commande 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 :
- Vérifie l'extension du fichier par rapport à tous les formateurs activés.
- Exécute la commande de formateur appropriée sur le fichier.
- 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é | Type | Description |
|---|---|---|
disabled | boolean | Définissez ceci sur true pour désactiver le formateur |
command | string[] | La commande à exécuter pour le formatage. Requise pour les formateurs personnalisés ; optionnelle pour les formateurs intégrés. |
environment | object | Variables d'environnement à définir lors de l'exécution du formateur |
extensions | string[] | 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.