Pemformat
Dropstone menggunakan pemformat khusus bahasa.
Dropstone dapat memformat file setelah ditulis atau diedit menggunakan pemformat khusus bahasa. Pemformat dinonaktifkan secara default; aktifkan di konfigurasi Anda sebelum Dropstone menjalankannya.
Built-in
Dropstone dilengkapi dengan beberapa pemformat bawaan untuk bahasa dan kerangka kerja populer. Di bawah ini adalah daftar pemformat, ekstensi file yang didukung, dan perintah atau opsi konfigurasi yang diperlukan.
| Formatter | Extensions | Requirements |
|---|---|---|
| air | .R | air command available |
| biome | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, dan lebih banyak | biome.json(c) config file |
| cargofmt | .rs | cargo fmt command available |
| clang-format | .c, .cpp, .h, .hpp, .ino, dan lebih banyak | .clang-format config file |
| cljfmt | .clj, .cljs, .cljc, .edn | cljfmt command available |
| dart | .dart | dart command available |
| dfmt | .d | dfmt command available |
| gleam | .gleam | gleam command available |
| gofmt | .go | gofmt command available |
| htmlbeautifier | .erb, .html.erb | htmlbeautifier command available |
| ktlint | .kt, .kts | ktlint command available |
| mix | .ex, .exs, .eex, .heex, .leex, .neex, .sface | mix command available |
| nixfmt | .nix | nixfmt command available |
| ocamlformat | .ml, .mli | ocamlformat command available dan .ocamlformat config file |
| ormolu | .hs | ormolu command available |
| pint | .php | laravel/pint dependency dalam composer.json |
| prettier | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, dan lebih banyak | prettier dependency dalam package.json |
| rubocop | .rb, .rake, .gemspec, .ru | rubocop command available |
| ruff | .py, .pyi | ruff command available dengan config |
| rustfmt | .rs | rustfmt command available |
| shfmt | .sh, .bash | shfmt command available |
| standardrb | .rb, .rake, .gemspec, .ru | standardrb command available |
| terraform | .tf, .tfvars | terraform command available |
| uv | .py, .pyi | uv command available |
| zig | .zig, .zon | zig command available |
Ketika pemformat diaktifkan, Dropstone akan menggunakan prettier untuk file yang cocok jika proyek Anda memiliki prettier dalam package.json.
Cara kerjanya
Ketika Dropstone menulis atau mengedit file dan pemformat diaktifkan, maka:
- Memeriksa ekstensi file terhadap semua pemformat yang diaktifkan.
- Menjalankan perintah pemformat yang sesuai pada file.
- Menerapkan perubahan pemformatan.
Proses ini terjadi di latar belakang untuk pemformat yang diaktifkan.
Konfigurasi
Anda dapat mengaktifkan dan menyesuaikan pemformat melalui bagian formatter dalam konfigurasi Dropstone.
Untuk mengaktifkan semua pemformat bawaan, atur formatter ke true.
{
"$schema": "https://dropstone.io/schema/config.json",
"formatter": true
}
Gunakan objek untuk membuat pemformat bawaan tetap diaktifkan sambil mengonfigurasi penggantian atau pemformat kustom.
{
"$schema": "https://dropstone.io/schema/config.json",
"formatter": {}
}
Setiap konfigurasi pemformat mendukung hal berikut:
| Property | Type | Description |
|---|---|---|
disabled | boolean | Atur ini ke true untuk menonaktifkan pemformat |
command | string[] | Perintah yang akan dijalankan untuk pemformatan. Diperlukan untuk pemformat kustom; opsional untuk pemformat bawaan. |
environment | object | Variabel lingkungan yang akan diatur saat menjalankan pemformat |
extensions | string[] | Ekstensi file yang harus ditangani pemformat ini |
Mari kita lihat beberapa contoh.
Menonaktifkan pemformat
Jika formatter dihilangkan, semua pemformat dinonaktifkan. Untuk menonaktifkan semua pemformat setelah konfigurasi lain mengaktifkannya, atur formatter ke false:
{
"$schema": "https://dropstone.io/schema/config.json",
"formatter": false
}
Untuk menonaktifkan pemformat tertentu, atur disabled ke true:
{
"$schema": "https://dropstone.io/schema/config.json",
"formatter": {
"prettier": {
"disabled": true
}
}
}
Pemformat kustom
Anda dapat mengonfigurasi pemformat bawaan dengan opsi seperti environment atau extensions. Untuk menambahkan pemformat kustom, tentukan command dan 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"]
}
}
}
Placeholder $FILE dalam perintah akan diganti dengan jalur ke file yang sedang diformat.