Formateadores
Dropstone utiliza formateadores específicos del lenguaje.
Dropstone puede formatear archivos después de que se escriben o editan utilizando formateadores específicos del lenguaje. Los formateadores están deshabilitados por defecto; habilítelos en su configuración antes de que Dropstone los ejecute.
Integrados
Dropstone viene con varios formateadores integrados para lenguajes y marcos populares. A continuación se muestra una lista de los formateadores, extensiones de archivo compatibles y comandos u opciones de configuración que necesita.
| Formateador | Extensiones | Requisitos |
|---|---|---|
| air | .R | comando air disponible |
| biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, y más | archivo de configuración biome.json(c) |
| cargofmt | .rs | comando cargo fmt disponible |
| clang-format | .c, .cpp, .h, .hpp, .ino, y más | archivo de configuración .clang-format |
| cljfmt | .clj, .cljs, .cljc, .edn | comando cljfmt disponible |
| dart | .dart | comando dart disponible |
| dfmt | .d | comando dfmt disponible |
| gleam | .gleam | comando gleam disponible |
| gofmt | .go | comando gofmt disponible |
| htmlbeautifier | .erb, .html.erb | comando htmlbeautifier disponible |
| ktlint | .kt, .kts | comando ktlint disponible |
| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | comando mix disponible |
| nixfmt | .nix | comando nixfmt disponible |
| ocamlformat | .ml, .mli | comando ocamlformat disponible y archivo de configuración .ocamlformat |
| ormolu | .hs | comando ormolu disponible |
| pint | .php | dependencia laravel/pint en composer.json |
| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, y más | dependencia prettier en package.json |
| rubocop | .rb, .rake, .gemspec, .ru | comando rubocop disponible |
| ruff | .py, .pyi | comando ruff disponible con configuración |
| rustfmt | .rs | comando rustfmt disponible |
| shfmt | .sh, .bash | comando shfmt disponible |
| standardrb | .rb, .rake, .gemspec, .ru | comando standardrb disponible |
| terraform | .tf, .tfvars | comando terraform disponible |
| uv | .py, .pyi | comando uv disponible |
| zig | .zig, .zon | comando zig disponible |
Cuando los formateadores están habilitados, Dropstone utilizará prettier para archivos coincidentes si su proyecto tiene prettier en package.json.
Cómo funciona
Cuando Dropstone escribe o edita un archivo y los formateadores están habilitados, lo hace:
- Verifica la extensión del archivo contra todos los formateadores habilitados.
- Ejecuta el comando del formateador apropiado en el archivo.
- Aplica los cambios de formato.
Este proceso ocurre en segundo plano para los formateadores habilitados.
Configurar
Puede habilitar y personalizar formateadores a través de la sección formatter en su configuración de Dropstone.
Para habilitar todos los formateadores integrados, establezca formatter en true.
{
"$schema": "https://dropstone.io/schema/config.json",
"formatter": true
}
Use un objeto para mantener los integrados habilitados mientras configura anulaciones o formateadores personalizados.
{
"$schema": "https://dropstone.io/schema/config.json",
"formatter": {}
}
Cada configuración de formateador admite lo siguiente:
| Propiedad | Tipo | Descripción |
|---|---|---|
disabled | boolean | Establezca esto en true para deshabilitar el formateador |
command | string[] | El comando a ejecutar para formatear. Requerido para formateadores personalizados; opcional para integrados. |
environment | object | Variables de entorno a establecer al ejecutar el formateador |
extensions | string[] | Extensiones de archivo que este formateador debe manejar |
Veamos algunos ejemplos.
Deshabilitar formateadores
Si formatter se omite, todos los formateadores están deshabilitados. Para deshabilitar todos los formateadores después de que otra configuración los haya habilitado, establezca formatter en false:
{
"$schema": "https://dropstone.io/schema/config.json",
"formatter": false
}
Para deshabilitar un formateador específico, establezca disabled en true:
{
"$schema": "https://dropstone.io/schema/config.json",
"formatter": {
"prettier": {
"disabled": true
}
}
}
Formateadores personalizados
Puede configurar formateadores integrados con opciones como environment o extensions. Para agregar un formateador personalizado, especifique un command y 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"]
}
}
}
El marcador de posición $FILE en el comando será reemplazado con la ruta al archivo que se está formateando.