Skip to content

設定

Oxfmt は即座に動作しますが、ほとんどのチームではローカル実行、エディタ、CI の間でフォーマットを一貫させるために設定ファイルをコミットします。

このページではプロジェクトの設定に焦点を当てます:フォーマットオプション、無視パターン、および実験的機能です。

設定ファイルの作成

現在のディレクトリにスタートアップ設定を生成するには:

sh
oxfmt --init

Oxfmt は、現在のディレクトリから始めてツリーを上方向に探索し、.oxfmtrc.json または .oxfmtrc.jsonc を自動的に検索します。明示的に設定ファイルを指定することもできます:

sh
oxfmt -c path/to/yourconfig.json

最小限の設定ファイルは以下の通りです:

.oxfmtrc.json
json
{
  "$schema": "./node_modules/oxfmt/configuration_schema.json",
  "printWidth": 80
}

設定ファイルの形式

設定ファイルは JSON オブジェクトです。最も一般的なトップレベルのフィールドは次のとおりです:

  • printWidth: 行幅の制限(デフォルト:100)
  • tabWidth: インデントレベルごとのスペース数(デフォルト:2)
  • useTabs: 空白の代わりにタブを使用(デフォルト:false)
  • semi: 半角セミコロンを追加(デフォルト:true)
  • singleQuote: 単一引用符を使用(デフォルト:false)
  • trailingComma: 複数行構造における末尾のカンマ(デフォルト:"all")
  • ignorePatterns: フォーマット対象外にするグロブパターン
  • sortImports: インポートの並べ替えを設定(デフォルトで無効)
  • sortTailwindcss: Tailwind CSS クラスの並べ替えを設定(デフォルトで無効)
  • sortPackageJson: package.json の並べ替えを設定(デフォルトで有効)

すべてのフィールドの一覧については、設定ファイルリファレンス を参照してください。

JSON スキーマ

エディタでの検証および補完のために $schema フィールドを追加します:

.oxfmtrc.json
json
{
  "$schema": "./node_modules/oxfmt/configuration_schema.json"
}

.editorconfig

Oxfmt は以下の .editorconfig プロパティを読み取ります:

  • end_of_lineendOfLine
  • indent_styleuseTabs
  • indent_sizetabWidth
  • max_line_lengthprintWidth
  • insert_final_newlineinsertFinalNewline

ルートセクションとグロブベースのオーバーライドの両方がサポートされています。

[*]
indent_size = 4

[*.{js,ts}]
indent_size = 2

Oxfmt は現在のディレクトリから最も近い .editorconfig ファイルのみを使用します:

  • root = true は無視されます
  • 嵌合された .editorconfig ファイルはマージされません

オーバーライド

overrides フィールドを使用して、特定のファイルに対して異なるフォーマットオプションを適用します:

.oxfmtrc.json
json
{
  "printWidth": 100,
  "overrides": [
    {
      "files": ["*.test.js", "*.spec.ts"],
      "options": {
        "printWidth": 120
      }
    },
    {
      "files": ["*.md", "*.html"],
      "excludeFiles": ["*.min.js"],
      "options": {
        "tabWidth": 4
      }
    }
  ]
}

各オーバーライドエントリには以下の項目があります:

  • files(必須):ファイルを一致させるためのグロブパターン
  • excludeFiles(オプション):このオーバーライドから除外するグロブパターン
  • options:適用するフォーマットオプション

グロブパターンは、Oxfmt 設定ファイルが含まれるディレクトリを基準にして解決されます。

優先度

オプションは順番に適用されます(優先度は低→高):

  1. デフォルト値
  2. .oxfmtrc.json(c) のルートオプション
  3. .oxfmtrc.json(c)overrides オプション
  4. .editorconfig がサポートするオプションに未設定のフィールドについてフォールバック

Oxfmt 専用のオプション

insertFinalNewline

フォーマット済みのファイルに最終的な改行を追加するかどうかを制御します。デフォルトは true です。

これは、一部の環境(例:Salesforce)が末尾の改行を削除するため、よく要望される Prettier 機能です。

printWidth

Oxfmt はデフォルトで printWidth: 100(Prettier は 80)を使用します。理由は以下の通りです:

  • タイプ注釈により TypeScript コードが長くなる
  • インポートステートメントには多くのスペシファイアが含まれることが多い
  • 現代の画面は広い
  • 行の折り返しが少ないと、より少ない LLM トークン数になる

Prettier のデフォルトと一致させるには:

.oxfmtrc.json
json
{
  "printWidth": 80
}

次のステップ