Dropstone Docs

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.

FormatterExtensionsRequirements
air.Rair command available
biome.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, dan lebih banyakbiome.json(c) config file
cargofmt.rscargo fmt command available
clang-format.c, .cpp, .h, .hpp, .ino, dan lebih banyak.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 dan .ocamlformat config file
ormolu.hsormolu command available
pint.phplaravel/pint dependency dalam composer.json
prettier.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, dan lebih banyakprettier dependency dalam package.json
rubocop.rb, .rake, .gemspec, .rurubocop command available
ruff.py, .pyiruff command available dengan 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

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:

  1. Memeriksa ekstensi file terhadap semua pemformat yang diaktifkan.
  2. Menjalankan perintah pemformat yang sesuai pada file.
  3. 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:

PropertyTypeDescription
disabledbooleanAtur ini ke true untuk menonaktifkan pemformat
commandstring[]Perintah yang akan dijalankan untuk pemformatan. Diperlukan untuk pemformat kustom; opsional untuk pemformat bawaan.
environmentobjectVariabel lingkungan yang akan diatur saat menjalankan pemformat
extensionsstring[]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.

Ctrl+I