Dropstone Docs

Formattatori

Dropstone utilizza formattatori specifici per linguaggio.

Dropstone può formattare i file dopo che sono stati scritti o modificati utilizzando formattatori specifici per linguaggio. I formattatori sono disabilitati per impostazione predefinita; abilitali nella tua configurazione prima che Dropstone li esegua.


Built-in

Dropstone viene fornito con diversi formattatori built-in per linguaggi e framework popolari. Di seguito è riportato un elenco dei formattatori, delle estensioni di file supportate e dei comandi o delle opzioni di configurazione di cui ha bisogno.

FormatterExtensionsRequirements
air.Rair command available
biome.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, e altribiome.json(c) config file
cargofmt.rscargo fmt command available
clang-format.c, .cpp, .h, .hpp, .ino, e altri.clang-format config file
cljfmt.clj, .cljs, .cljc, .edncljfmt command available
dart.dartdart command available
dfmt.ddfmt command available
gleam.gleamgleam command available
gofmt.gogofmt command available
htmlbeautifier.erb, .html.erbhtmlbeautifier command available
ktlint.kt, .ktsktlint command available
mix.ex, .exs, .eex, .heex, .leex, .neex, .sfacemix command available
nixfmt.nixnixfmt command available
ocamlformat.ml, .mliocamlformat command available e .ocamlformat config file
ormolu.hsormolu command available
pint.phplaravel/pint dependency in composer.json
prettier.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, e altriprettier dependency in package.json
rubocop.rb, .rake, .gemspec, .rurubocop command available
ruff.py, .pyiruff command available with config
rustfmt.rsrustfmt command available
shfmt.sh, .bashshfmt command available
standardrb.rb, .rake, .gemspec, .rustandardrb command available
terraform.tf, .tfvarsterraform command available
uv.py, .pyiuv command available
zig.zig, .zonzig command available

Quando i formattatori sono abilitati, Dropstone utilizzerà prettier per i file corrispondenti se il tuo progetto ha prettier in package.json.


Come funziona

Quando Dropstone scrive o modifica un file e i formattatori sono abilitati, esegue:

  1. Controlla l'estensione del file rispetto a tutti i formattatori abilitati.
  2. Esegue il comando del formattatore appropriato sul file.
  3. Applica le modifiche di formattazione.

Questo processo avviene in background per i formattatori abilitati.


Configura

Puoi abilitare e personalizzare i formattatori tramite la sezione formatter nella tua configurazione Dropstone.

Per abilitare tutti i formattatori built-in, imposta formatter su true.

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

Utilizza un oggetto per mantenere i built-in abilitati mentre configuri override o formattatori personalizzati.

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

Ogni configurazione del formattatore supporta le seguenti proprietà:

PropertyTypeDescription
disabledbooleanImposta questo su true per disabilitare il formattatore
commandstring[]Il comando da eseguire per la formattazione. Obbligatorio per formattatori personalizzati; facoltativo per i built-in.
environmentobjectVariabili di ambiente da impostare quando si esegue il formattatore
extensionsstring[]Estensioni di file che questo formattatore dovrebbe gestire

Diamo un'occhiata ad alcuni esempi.


Disabilitazione dei formattatori

Se formatter viene omesso, tutti i formattatori sono disabilitati. Per disabilitare tutti i formattatori dopo che un'altra configurazione li ha abilitati, imposta formatter su false:

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

Per disabilitare un formattatore specifico, imposta disabled su true:

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

Formattatori personalizzati

Puoi configurare i formattatori built-in con opzioni come environment o extensions. Per aggiungere un formattatore personalizzato, specifica un 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"]
    }
  }
}

Il placeholder $FILE nel comando verrà sostituito con il percorso del file in fase di formattazione.

Ctrl+I