Dropstone Docs

Formatadores

Dropstone usa formatadores específicos de linguagem.

Dropstone pode formatar arquivos após serem escritos ou editados usando formatadores específicos de linguagem. Os formatadores estão desabilitados por padrão; habilite-os em sua configuração antes que Dropstone os execute.


Built-in

Dropstone vem com vários formatadores built-in para linguagens e frameworks populares. Abaixo está uma lista dos formatadores, extensões de arquivo suportadas e comandos ou opções de configuração necessários.

FormatadorExtensõesRequisitos
air.Rcomando air disponível
biome.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, e maisarquivo de configuração biome.json(c)
cargofmt.rscomando cargo fmt disponível
clang-format.c, .cpp, .h, .hpp, .ino, e maisarquivo de configuração .clang-format
cljfmt.clj, .cljs, .cljc, .edncomando cljfmt disponível
dart.dartcomando dart disponível
dfmt.dcomando dfmt disponível
gleam.gleamcomando gleam disponível
gofmt.gocomando gofmt disponível
htmlbeautifier.erb, .html.erbcomando htmlbeautifier disponível
ktlint.kt, .ktscomando ktlint disponível
mix.ex, .exs, .eex, .heex, .leex, .neex, .sfacecomando mix disponível
nixfmt.nixcomando nixfmt disponível
ocamlformat.ml, .mlicomando ocamlformat disponível e arquivo de configuração .ocamlformat
ormolu.hscomando ormolu disponível
pint.phpdependência laravel/pint em composer.json
prettier.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, e maisdependência prettier em package.json
rubocop.rb, .rake, .gemspec, .rucomando rubocop disponível
ruff.py, .pyicomando ruff disponível com configuração
rustfmt.rscomando rustfmt disponível
shfmt.sh, .bashcomando shfmt disponível
standardrb.rb, .rake, .gemspec, .rucomando standardrb disponível
terraform.tf, .tfvarscomando terraform disponível
uv.py, .pyicomando uv disponível
zig.zig, .zoncomando zig disponível

Quando os formatadores estão habilitados, Dropstone usará prettier para arquivos correspondentes se seu projeto tiver prettier em package.json.


Como funciona

Quando Dropstone escreve ou edita um arquivo e os formatadores estão habilitados, ele:

  1. Verifica a extensão do arquivo em relação a todos os formatadores habilitados.
  2. Executa o comando do formatador apropriado no arquivo.
  3. Aplica as alterações de formatação.

Este processo acontece em segundo plano para formatadores habilitados.


Configurar

Você pode habilitar e personalizar formatadores através da seção formatter em sua configuração Dropstone.

Para habilitar todos os formatadores built-in, defina formatter como true.

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

Use um objeto para manter os built-ins habilitados enquanto configura substituições ou formatadores personalizados.

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

Cada configuração de formatador suporta o seguinte:

PropriedadeTipoDescrição
disabledbooleanDefina como true para desabilitar o formatador
commandstring[]O comando a executar para formatação. Obrigatório para formatadores personalizados; opcional para built-ins.
environmentobjectVariáveis de ambiente a definir ao executar o formatador
extensionsstring[]Extensões de arquivo que este formatador deve manipular

Vamos ver alguns exemplos.


Desabilitando formatadores

Se formatter for omitido, todos os formatadores serão desabilitados. Para desabilitar todos os formatadores após outra configuração tê-los habilitado, defina formatter como false:

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

Para desabilitar um formatador específico, defina disabled como true:

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

Formatadores personalizados

Você pode configurar formatadores built-in com opções como environment ou extensions. Para adicionar um formatador personalizado, especifique um command e 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"]
    }
  }
}

O placeholder $FILE no comando será substituído pelo caminho do arquivo sendo formatado.

Ctrl+I