Dropstone Docs

フォーマッター

Dropstone は言語固有のフォーマッターを使用します。

Dropstone は、ファイルが書き込まれたり編集されたりした後、言語固有のフォーマッターを使用してファイルをフォーマットできます。フォーマッターはデフォルトで無効になっています。Dropstone がそれらを実行する前に、設定で有効にしてください。


組み込み

Dropstone には、一般的な言語とフレームワーク向けの複数の組み込みフォーマッターが付属しています。以下は、フォーマッター、サポートされているファイル拡張子、および必要なコマンドまたは設定オプションのリストです。

フォーマッター拡張子要件
air.Rair コマンドが利用可能
biome.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, および その他biome.json(c) 設定ファイル
cargofmt.rscargo fmt コマンドが利用可能
clang-format.c, .cpp, .h, .hpp, .ino, および その他.clang-format 設定ファイル
cljfmt.clj, .cljs, .cljc, .edncljfmt コマンドが利用可能
dart.dartdart コマンドが利用可能
dfmt.ddfmt コマンドが利用可能
gleam.gleamgleam コマンドが利用可能
gofmt.gogofmt コマンドが利用可能
htmlbeautifier.erb, .html.erbhtmlbeautifier コマンドが利用可能
ktlint.kt, .ktsktlint コマンドが利用可能
mix.ex, .exs, .eex, .heex, .leex, .neex, .sfacemix コマンドが利用可能
nixfmt.nixnixfmt コマンドが利用可能
ocamlformat.ml, .mliocamlformat コマンドが利用可能で .ocamlformat 設定ファイル
ormolu.hsormolu コマンドが利用可能
pint.phpcomposer.json 内の laravel/pint 依存関係
prettier.js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml, および その他package.json 内の prettier 依存関係
rubocop.rb, .rake, .gemspec, .rurubocop コマンドが利用可能
ruff.py, .pyi設定付きの ruff コマンドが利用可能
rustfmt.rsrustfmt コマンドが利用可能
shfmt.sh, .bashshfmt コマンドが利用可能
standardrb.rb, .rake, .gemspec, .rustandardrb コマンドが利用可能
terraform.tf, .tfvarsterraform コマンドが利用可能
uv.py, .pyiuv コマンドが利用可能
zig.zig, .zonzig コマンドが利用可能

フォーマッターが有効な場合、プロジェクトに package.json 内に prettier がある場合、Dropstone は一致するファイルに対して prettier を使用します。


仕組み

Dropstone がファイルを書き込むか編集し、フォーマッターが有効な場合、以下を実行します:

  1. ファイル拡張子をすべての有効なフォーマッターと照合します。
  2. ファイルに対して適切なフォーマッターコマンドを実行します。
  3. フォーマット変更を適用します。

このプロセスは、有効なフォーマッターのバックグラウンドで発生します。


設定

Dropstone 設定の formatter セクションを通じてフォーマッターを有効にしてカスタマイズできます。

すべての組み込みフォーマッターを有効にするには、formattertrue に設定します。

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

組み込みを有効に保ちながらオーバーライドまたはカスタムフォーマッターを設定するには、オブジェクトを使用します。

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

各フォーマッター設定は以下をサポートしています:

プロパティ説明
disabledbooleanフォーマッターを無効にするには true に設定します
commandstring[]フォーマットを実行するコマンド。カスタムフォーマッターでは必須。組み込みではオプション。
environmentobjectフォーマッター実行時に設定する環境変数
extensionsstring[]このフォーマッターが処理するファイル拡張子

いくつかの例を見てみましょう。


フォーマッターの無効化

formatter が省略されている場合、すべてのフォーマッターは無効になります。別の設定で有効にされた後、すべてのフォーマッターを無効にするには、formatterfalse に設定します:

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

特定の フォーマッターを無効にするには、disabledtrue に設定します:

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

カスタムフォーマッター

environmentextensions などのオプションで組み込みフォーマッターを設定できます。カスタムフォーマッターを追加するには、commandextensions を指定します:

{
  "$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"]
    }
  }
}

コマンド内の $FILE プレースホルダー は、フォーマットされるファイルのパスに置き換えられます。

Ctrl+I