メインコンテンツへスキップ
このクックブックは、Droidがファイルを編集した後に自動的にコードをフォーマットし、手動での介入なしにプロジェクト全体で一貫したコードスタイルを確保する方法を示します。

動作原理

フック:
  1. ファイル編集時にトリガー: WriteまたはEditツールコール後に実行
  2. ファイル種別を検出: ファイル拡張子をチェックしてフォーマッターを決定
  3. 適切なフォーマッターを実行: prettier、black、gofmt、rustfmtなどを実行
  4. フィードバックを提供: フォーマット結果をユーザーに報告
  5. エラーを適切に処理: フォーマットが失敗しても継続

前提条件

あなたの言語スタックに対応するフォーマッターをインストールしてください:

基本セットアップ

単一言語プロジェクト

JavaScript/TypeScriptプロジェクトの場合、.factory/hooks.jsonに以下を追加してください:

多言語プロジェクト

複数の言語を使用するプロジェクトでは、異なるファイル種別を処理するスクリプトを使用します。 .factory/hooks/format.shを作成してください:
スクリプトを実行可能にします:
.factory/hooks.jsonに追加してください:

高度な設定

カスタム設定でフォーマット

プロジェクト固有のprettier設定を使用:

リントとフォーマット

フォーマットとリント修正を組み合わせます。 .factory/hooks/format-and-lint.shを作成してください:
スクリプトを実行可能にします:
.factory/hooks.jsonに追加してください:

条件付きフォーマット

特定のディレクトリ内のファイルのみをフォーマットします。 .factory/hooks/format-src-only.shを作成してください:
スクリプトを実行可能にします:
.factory/hooks.jsonに追加してください:

実例

例1: Reactコンポーネントのフォーマット

例2: Pythonインポートソート

ベストプラクティス

フォーマッターは、文字列形式や行継続の変更など、微妙なバグを混入させることがあります。コミット前に必ず変更を確認してください。
1

読み取り専用モードから始める

まずフォーマッター設定を手動でテストします:
2

一貫した設定ファイルを使用

フォーマッター設定がコミットされていることを確認します:
3

適切なタイムアウトを設定

大きなファイルにはより長い時間が必要な場合があります:
4

フォーマッターエラーを適切に処理する

フォーマットに失敗してもDroidをブロックしないようにします:
5

Gitフック連携を検討する

一貫性のためpre-commitフックと組み合わせます:

トラブルシューティング

フォーマッターが見つからない

問題: command not foundエラー 解決策: フォーマッターをグローバルにインストールするか、npx/プロジェクトバイナリを使用してください:

フォーマットによりコードが破損

問題: フォーマッターが構文エラーを引き起こす 解決策: フォーマット後にファイル検証を追加してください:

フックの実行が遅い

問題: フォーマットに時間がかかりすぎる 解決策: 変更されたファイルのみをフォーマットし、より高速なフォーマッターを使用してください:

エディターのフォーマットと競合

問題: エディターとフックが異なるフォーマットを行う 解決策: 両方で同じ設定を使用してください:

関連情報