Skip to content

Oxfmt の設定オプション

ほとんどのオプションは Prettier と同様ですが、すべてがそうではありません。
さらに、一部のオプションは独自の拡張機能です。

arrowParens

type: "always" | "avoid"

単一のアロー関数パラメータにかっこを含めるかどうか。

  • デフォルト: "always"

bracketSameLine

type: boolean

複数行の HTML (HTML, JSX, Vue, Angular) エレメントの > を最後の行の末尾に置く。 次行に単独で置くのではなく、後続の行に改行しない(自己終了エレメントには適用されない)。

  • デフォルト: false

bracketSpacing

type: boolean

オブジェクトリテラル内の括弧の間にスペースを出力するかどうか。

  • デフォルト: true

embeddedLanguageFormatting

type: "auto" | "off"

ファイル内の埋め込み部分(例:CSS-in-JS、JS-in-Vue など)のフォーマットを制御する。

注釈: XXX-in-JS のサポートは未完了です。

  • デフォルト: "auto"

endOfLine

type: "lf" | "crlf" | "cr"

改行文字として使用する文字列。

注釈: "auto" はサポートされていません。

  • デフォルト: "lf"
  • .editorconfig.end_of_line を上書き

htmlWhitespaceSensitivity

type: "css" | "strict" | "ignore"

HTML、Vue、Angular、Handlebars に対するグローバルな空白感度を指定。

  • デフォルト: "css"

ignorePatterns

type: string[]

このパターンに一致するファイルを無視する。 パターンは、Oxfmt 設定ファイルの位置に基づいています。

  • デフォルト: []

insertFinalNewline

type: boolean

ファイル末尾に最終的な改行を挿入するかどうか。

  • デフォルト: true
  • .editorconfig.insert_final_newline を上書き

jsxSingleQuote

type: boolean

JSX では二重引用符の代わりに単一引用符を使用する。

  • デフォルト: false

objectWrap

type: "preserve" | "collapse"

オブジェクトリテラルが1行に収まる場合または複数行にわたる場合にどう扱うか。

デフォルトでは、最初のプロパティの前に改行がある場合、複数行としてフォーマットします。 著者がこのヒューリスティックを用いて文脈的に読みやすさを向上させられますが、いくつかの欠点があります。

  • デフォルト: "preserve"

overrides

type: array

ファイル固有のオーバーライド。 複数のオーバーライドと一致する場合、後から定義されたオーバーライドが優先されます(配列の順序が重要)。

  • デフォルト: []

overrides[n]

type: object

overrides[n].excludeFiles

type: string[]

このオーバーライドから除外するグロブパターン。

overrides[n].files

type: string[]

このオーバーライドにマッチするファイルのグロブパターン。 すべてのパターンは、Oxfmt 設定ファイルからの相対パスです。

overrides[n].options

type: object

overrides[n].options.arrowParens

type: "always" | "avoid"

単一のアロー関数パラメータにかっこを含めるかどうか。

  • デフォルト: "always"
overrides[n].options.bracketSameLine

type: boolean

複数行の HTML (HTML, JSX, Vue, Angular) エレメントの > を最後の行の末尾に置く。 次行に単独で置くのではなく、後続の行に改行しない(自己終了エレメントには適用されない)。

  • デフォルト: false
overrides[n].options.bracketSpacing

type: boolean

オブジェクトリテラル内の括弧の間にスペースを出力するかどうか。

  • デフォルト: true
overrides[n].options.embeddedLanguageFormatting

type: "auto" | "off"

ファイル内の埋め込み部分(例:CSS-in-JS、JS-in-Vue など)のフォーマットを制御する。

注釈: XXX-in-JS のサポートは未完了です。

  • デフォルト: "auto"
overrides[n].options.endOfLine

type: "lf" | "crlf" | "cr"

改行文字として使用する文字列。

注釈: "auto" はサポートされていません。

  • デフォルト: "lf"
  • .editorconfig.end_of_line を上書き
overrides[n].options.htmlWhitespaceSensitivity

type: "css" | "strict" | "ignore"

HTML、Vue、Angular、Handlebars に対するグローバルな空白感度を指定。

  • デフォルト: "css"
overrides[n].options.insertFinalNewline

type: boolean

ファイル末尾に最終的な改行を挿入するかどうか。

  • デフォルト: true
  • .editorconfig.insert_final_newline を上書き
overrides[n].options.jsxSingleQuote

type: boolean

JSX では二重引用符の代わりに単一引用符を使用する。

  • デフォルト: false
overrides[n].options.objectWrap

type: "preserve" | "collapse"

オブジェクトリテラルが1行に収まる場合または複数行にわたる場合にどう扱うか。

デフォルトでは、最初のプロパティの前に改行がある場合、複数行としてフォーマットします。 著者がこのヒューリスティックを用いて文脈的に読みやすさを向上させられますが、いくつかの欠点があります。

  • デフォルト: "preserve"
overrides[n].options.printWidth

type: integer

プリンタが折り返す行長を指定。

マークダウンのフォーマット時に行折りを行わないようにしたい場合は、proseWrap オプションを無効にしてください。

  • デフォルト: 100
  • .editorconfig.max_line_length を上書き
overrides[n].options.proseWrap

type: "always" | "never" | "preserve"

プローズの折り返し方法を指定。

デフォルトでは、フォーマッターはマークダウンテキスト内の折り返しを変更しません。なぜなら、一部のサービス(例:GitHub コメントや BitBucket)は行区切りに敏感なレンダラを使用しているためです。 プローズを印刷幅に合わせて折り返すには、このオプションを "always" に変更してください。 すべてのプローズブロックを1行に強制し、エディタ/ビューアのソフトウェア折り返しに依存したい場合は、"never" を使用できます。

  • デフォルト: "preserve"
overrides[n].options.quoteProps

type: "as-needed" | "consistent" | "preserve"

オブジェクト内のプロパティの引用符の付与条件を変更。

  • デフォルト: "as-needed"
overrides[n].options.semi

type: boolean

文の末尾にセミコロンを出力するかどうか。

  • デフォルト: true
overrides[n].options.singleAttributePerLine

type: boolean

HTML、Vue、JSX において1行に1つの属性のみを許可する。

  • デフォルト: false
overrides[n].options.singleQuote

type: boolean

二重引用符の代わりに単一引用符を使用する。

JSX については、jsxSingleQuote オプションを設定してください。

  • デフォルト: false
overrides[n].options.sortImports

type: object

インポートステートメントのソートを制御。

eslint-plugin-perfectionist/sort-imports と類似したアルゴリズムを使用しています。 詳細については各フィールドのドキュメントを参照してください。

  • デフォルト: 無効化
overrides[n].options.sortImports.customGroups

type: array

非常に特定のインポートをマッチさせるために独自のグループを定義。

customGroups リストは順序付きです:最初に一致する定義が使用されます。 カスタムグループはあらゆる事前定義グループよりも優先順位が高いです。

事前定義グループをカスタムグループより優先させたい場合、 事前定義グループと同じ動作をするカスタムグループ定義を作成し、リストの先頭に配置する必要があります。

elementNamePatternselectormodifiers などの複数の条件を指定した場合、すべての条件が満たされた場合にのみインポートがカスタムグループにマッチします(論理積)。

  • デフォルト: []

####### overrides[n].options.sortImports.customGroups[n]

type: object

######## overrides[n].options.sortImports.customGroups[n].elementNamePattern

type: string[]

デフォルト: []

このグループのインポート元をマッチさせるためのグロブパターンのリスト。

######## overrides[n].options.sortImports.customGroups[n].groupName

type: string

デフォルト: ""

カスタムグループの名前。groups オプションで使用されます。

######## overrides[n].options.sortImports.customGroups[n].modifiers

type: string[]

インポートの特徴にマッチさせるための修飾子。 すべての指定された修飾子が存在しなければなりません(論理積)。

可能な値: "side_effect", "type", "value", "default", "wildcard", "named"

######## overrides[n].options.sortImports.customGroups[n].selector

type: string

インポート種別にマッチさせるためのセレクタ。

可能な値: "type", "side_effect_style", "side_effect", "style", "index", "sibling", "parent", "subpath", "internal", "builtin", "external", "import"

overrides[n].options.sortImports.groups

type: array

ソート用の事前定義インポートグループのリストを指定。

各インポートは groups オプションで指定された1つのグループに割り当てられます(一致するものがなければ unknown グループ)。 groups オプションの項目の順序がグループの順序を決定します。

あるグループ内では、typeorderignoreCase などのオプションに従ってメンバーが並べ替えられます。

個々のグループは配列にまとめて結合できます。 その配列内のグループの順序は重要ではありません。 配列内のすべてのグループのメンバーは、1つのグループに属しているかのように一緒に並べ替えられます。

事前定義グループは1つのセレクタと複数の修飾子で特徴づけられます。 修飾子は任意の順序で記述できますが、セレクタは常に最後に来なければなりません。

セレクタのリストは最重要度順に並んでいます:

  • type — TypeScript の型インポート。
  • side_effect_style — サイドエフェクトスタイルインポート。
  • side_effect — サイドエフェクトインポート。
  • style — スタイルインポート。
  • index — 現在のディレクトリのメインファイル。
  • sibling — 同じディレクトリのモジュール。
  • parent — 親ディレクトリのモジュール。
  • subpath — Node.js のサブパスインポート。
  • internal — 内部モジュール。
  • builtin — Node.js のビルトインモジュール。
  • external — プロジェクト内にインストールされた外部モジュール。
  • import — 任意のインポート。

修飾子のリストも最重要度順に並んでいます:

  • side_effect — サイドエフェクトインポート。

  • type — TypeScript 型インポート。

  • value — 値インポート。

  • default — デフォルト指定子を含むインポート。

  • wildcard — ワイルドカード(* as)指定子を含むインポート。

  • named — 1つ以上の名前付き指定子を含むインポート。

  • デフォルト: 以下を参照

json
["builtin", "external", ["internal", "subpath"], ["parent", "sibling", "index"], "style", "unknown"]

また、groups リストの特定の位置に { "newlinesBetween": boolean } マーカーオブジェクトを含めることで、 特定のグループ境界に対してグローバルな newlinesBetween 設定を上書きできます。

####### overrides[n].options.sortImports.groups[n]

type: array | string

overrides[n].options.sortImports.ignoreCase

type: boolean

ソート時に大文字・小文字の区別を行うかどうかを指定。

  • デフォルト: true
overrides[n].options.sortImports.internalPattern

type: string[]

内部インポートを識別するためのプレフィックスを指定。

これは自作モジュールと外部依存との区別に役立ちます。

  • デフォルト: ["~/", "@/"]
overrides[n].options.sortImports.newlinesBetween

type: boolean

グループ間の改行を追加するかどうかを指定。

false の場合、グループ間には改行が追加されません。

  • デフォルト: true
overrides[n].options.sortImports.order

type: "asc" | "desc"

昇順または降順にソートするかどうかを指定。

  • デフォルト: "asc"
overrides[n].options.sortImports.partitionByComment

type: boolean

コメントを使用してインポートを論理的なグループに分ける機能を有効にする。

true の場合、すべてのコメントが区切り文字として扱われ、パーティションが作成されます。

js
import { b1, b2 } from "b";
// PARTITION
import { a } from "a";
import { c } from "c";
  • デフォルト: false
overrides[n].options.sortImports.partitionByNewline

type: boolean

空行を使用してインポートを論理的なグループに分ける機能を有効にする。

true になると、インポートの間に空行がある場合、フォーマッターはそれらをソートしません。 これにより、論理的に分離されたメンバーのグループの順序を維持できます。

js
import { b1, b2 } from "b";

import { a } from "a";
import { c } from "c";
  • デフォルト: false
overrides[n].options.sortImports.sortSideEffects

type: boolean

サイドエフェクトインポートをソートするかどうかを指定。

デフォルトでは、セキュリティ上の理由からサイドエフェクトインポートのソートは無効になっています。

  • デフォルト: false
overrides[n].options.sortPackageJson

type: object | boolean

package.json のキーをソート。

アルゴリズムは prettier-plugin-sort-packagejson とは互換性がありません。 しかし、我々はそれの方が明確でナビゲーションしやすいと考えています。 詳細については、各フィールドのドキュメントを参照してください。

  • デフォルト: true
overrides[n].options.sortPackageJson.sortScripts

type: boolean

scripts フィールドをアルファベット順にソート。

  • デフォルト: false
overrides[n].options.sortTailwindcss

type: object

Tailwind CSS クラスをソート。

prettier-plugin-tailwindcss と同じアルゴリズムを使用。 オプション名は元のプラグインの tailwind 接頭辞を省略しています(例:config は元の tailwindConfig に対応)。 詳細については各フィールドのドキュメントを参照してください。

  • デフォルト: 無効化
overrides[n].options.sortTailwindcss.attributes

type: string[]

class および className 以外にソートする追加の属性(正確な一致)。

注釈: 正規表現パターンはまだサポートされていません。

  • デフォルト: []
  • 例: ["myClassProp", ":class"]
overrides[n].options.sortTailwindcss.config

type: string

Tailwind CSS 設定ファイル(v3)へのパス。

注釈: パスは、Oxfmt 設定ファイルからの相対パスで解決されます。

  • デフォルト: "tailwind.config.js" を自動検出
overrides[n].options.sortTailwindcss.functions

type: string[]

引数をソートすべきカスタム関数名のリスト(正確な一致)。

注釈: 正規表現パターンはまだサポートされていません。

  • デフォルト: []
  • 例: ["clsx", "cn", "cva", "tw"]
overrides[n].options.sortTailwindcss.preserveDuplicates

type: boolean

重複したクラスを保持する。

  • デフォルト: false
overrides[n].options.sortTailwindcss.preserveWhitespace

type: boolean

クラス周辺の空白を保持する。

  • デフォルト: false
overrides[n].options.sortTailwindcss.stylesheet

type: string

Tailwind CSS スタイルシート(v4)へのパス。

注釈: パスは、Oxfmt 設定ファイルからの相対パスで解決されます。

  • デフォルト: インストール済みの Tailwind CSS の theme.css
overrides[n].options.tabWidth

type: integer

インデントレベルあたりのスペース数を指定。

  • デフォルト: 2
  • .editorconfig.indent_size を上書き
overrides[n].options.trailingComma

type: "all" | "es5" | "none"

複数行のコンマ区切り構造で可能な限り末尾にコンマを出力する。

例:1行の配列は末尾にコンマが出ません。

  • デフォルト: "all"
overrides[n].options.useTabs

type: boolean

スペースの代わりにタブでインデントする。

  • デフォルト: false
  • .editorconfig.indent_style を上書き
overrides[n].options.vueIndentScriptAndStyle

type: boolean

Vue ファイル内の <script> および <style> タグ内のコードをインデントするかどうか。

  • デフォルト: false

printWidth

type: integer

プリンタが折り返す行長を指定。

マークダウンのフォーマット時に行折りを行わないようにしたい場合は、proseWrap オプションを無効にしてください。

  • デフォルト: 100
  • .editorconfig.max_line_length を上書き

proseWrap

type: "always" | "never" | "preserve"

プローズの折り返し方法を指定。

デフォルトでは、フォーマッターはマークダウンテキスト内の折り返しを変更しません。なぜなら、一部のサービス(例:GitHub コメントや BitBucket)は行区切りに敏感なレンダラを使用しているためです。 プローズを印刷幅に合わせて折り返すには、このオプションを "always" に変更してください。 すべてのプローズブロックを1行に強制し、エディタ/ビューアのソフトウェア折り返しに依存したい場合は、"never" を使用できます。

  • デフォルト: "preserve"

quoteProps

type: "as-needed" | "consistent" | "preserve"

オブジェクト内のプロパティの引用符の付与条件を変更。

  • デフォルト: "as-needed"

semi

type: boolean

文の末尾にセミコロンを出力するかどうか。

  • デフォルト: true

singleAttributePerLine

type: boolean

HTML、Vue、JSX において1行に1つの属性のみを許可する。

  • デフォルト: false

singleQuote

type: boolean

二重引用符の代わりに単一引用符を使用する。

JSX については、jsxSingleQuote オプションを設定してください。

  • デフォルト: false

sortImports

type: object

インポートステートメントのソートを制御。

eslint-plugin-perfectionist/sort-imports と類似したアルゴリズムを使用しています。 詳細については各フィールドのドキュメントを参照してください。

  • デフォルト: 無効化

sortImports.customGroups

type: array

非常に特定のインポートをマッチさせるために独自のグループを定義。

customGroups リストは順序付きです:最初に一致する定義が使用されます。 カスタムグループはあらゆる事前定義グループよりも優先順位が高いです。

事前定義グループをカスタムグループより優先させたい場合、 事前定義グループと同じ動作をするカスタムグループ定義を作成し、リストの先頭に配置する必要があります。

elementNamePatternselectormodifiers などの複数の条件を指定した場合、すべての条件が満たされた場合にのみインポートがカスタムグループにマッチします(論理積)。

  • デフォルト: []

sortImports.customGroups[n]

type: object

sortImports.customGroups[n].elementNamePattern

type: string[]

デフォルト: []

このグループのインポート元をマッチさせるためのグロブパターンのリスト。

sortImports.customGroups[n].groupName

type: string

デフォルト: ""

カスタムグループの名前。groups オプションで使用されます。

sortImports.customGroups[n].modifiers

type: string[]

インポートの特徴にマッチさせるための修飾子。 すべての指定された修飾子が存在しなければなりません(論理積)。

可能な値: "side_effect", "type", "value", "default", "wildcard", "named"

sortImports.customGroups[n].selector

type: string

インポート種別にマッチさせるためのセレクタ。

可能な値: "type", "side_effect_style", "side_effect", "style", "index", "sibling", "parent", "subpath", "internal", "builtin", "external", "import"

sortImports.groups

type: array

ソート用の事前定義インポートグループのリストを指定。

各インポートは groups オプションで指定された1つのグループに割り当てられます(一致するものがなければ unknown グループ)。 groups オプションの項目の順序がグループの順序を決定します。

あるグループ内では、typeorderignoreCase などのオプションに従ってメンバーが並べ替えられます。

個々のグループは配列にまとめて結合できます。 その配列内のグループの順序は重要ではありません。 配列内のすべてのグループのメンバーは、1つのグループに属しているかのように一緒に並べ替えられます。

事前定義グループは1つのセレクタと複数の修飾子で特徴づけられます。 修飾子は任意の順序で記述できますが、セレクタは常に最後に来なければなりません。

セレクタのリストは最重要度順に並んでいます:

  • type — TypeScript の型インポート。
  • side_effect_style — サイドエフェクトスタイルインポート。
  • side_effect — サイドエフェクトインポート。
  • style — スタイルインポート。
  • index — 現在のディレクトリのメインファイル。
  • sibling — 同じディレクトリのモジュール。
  • parent — 親ディレクトリのモジュール。
  • subpath — Node.js のサブパスインポート。
  • internal — 内部モジュール。
  • builtin — Node.js のビルトインモジュール。
  • external — プロジェクト内にインストールされた外部モジュール。
  • import — 任意のインポート。

修飾子のリストも最重要度順に並んでいます:

  • side_effect — サイドエフェクトインポート。

  • type — TypeScript 型インポート。

  • value — 値インポート。

  • default — デフォルト指定子を含むインポート。

  • wildcard — ワイルドカード(* as)指定子を含むインポート。

  • named — 1つ以上の名前付き指定子を含むインポート。

  • デフォルト: 以下を参照

json
["builtin", "external", ["internal", "subpath"], ["parent", "sibling", "index"], "style", "unknown"]

また、groups リストの特定の位置に { "newlinesBetween": boolean } マーカーオブジェクトを含めることで、 特定のグループ境界に対してグローバルな newlinesBetween 設定を上書きできます。

sortImports.groups[n]

type: array | string

sortImports.ignoreCase

type: boolean

ソート時に大文字・小文字の区別を行うかどうかを指定。

  • デフォルト: true

sortImports.internalPattern

type: string[]

内部インポートを識別するためのプレフィックスを指定。

これは自作モジュールと外部依存との区別に役立ちます。

  • デフォルト: ["~/", "@/"]

sortImports.newlinesBetween

type: boolean

グループ間の改行を追加するかどうかを指定。

false の場合、グループ間には改行が追加されません。

  • デフォルト: true

sortImports.order

type: "asc" | "desc"

昇順または降順にソートするかどうかを指定。

  • デフォルト: "asc"

sortImports.partitionByComment

type: boolean

コメントを使用してインポートを論理的なグループに分ける機能を有効にする。

true の場合、すべてのコメントが区切り文字として扱われ、パーティションが作成されます。

js
import { b1, b2 } from "b";
// PARTITION
import { a } from "a";
import { c } from "c";
  • デフォルト: false

sortImports.partitionByNewline

type: boolean

空行を使用してインポートを論理的なグループに分ける機能を有効にする。

true になると、インポートの間に空行がある場合、フォーマッターはそれらをソートしません。 これにより、論理的に分離されたメンバーのグループの順序を維持できます。

js
import { b1, b2 } from "b";

import { a } from "a";
import { c } from "c";
  • デフォルト: false

sortImports.sortSideEffects

type: boolean

サイドエフェクトインポートをソートするかどうかを指定。

デフォルトでは、セキュリティ上の理由からサイドエフェクトインポートのソートは無効になっています。

  • デフォルト: false

sortPackageJson

type: object | boolean

package.json のキーをソート。

アルゴリズムは prettier-plugin-sort-packagejson とは互換性がありません。 しかし、我々はそれの方が明確でナビゲーションしやすいと考えています。 詳細については、各フィールドのドキュメントを参照してください。

  • デフォルト: true

sortPackageJson.sortScripts

type: boolean

scripts フィールドをアルファベット順にソート。

  • デフォルト: false

sortTailwindcss

type: object

Tailwind CSS クラスをソート。

prettier-plugin-tailwindcss と同じアルゴリズムを使用。 オプション名は元のプラグインの tailwind 接頭辞を省略しています(例:config は元の tailwindConfig に対応)。 詳細については各フィールドのドキュメントを参照してください。

  • デフォルト: 無効化

sortTailwindcss.attributes

type: string[]

class および className 以外にソートする追加の属性(正確な一致)。

注釈: 正規表現パターンはまだサポートされていません。

  • デフォルト: []
  • 例: ["myClassProp", ":class"]

sortTailwindcss.config

type: string

Tailwind CSS 設定ファイル(v3)へのパス。

注釈: パスは、Oxfmt 設定ファイルからの相対パスで解決されます。

  • デフォルト: "tailwind.config.js" を自動検出

sortTailwindcss.functions

type: string[]

引数をソートすべきカスタム関数名のリスト(正確な一致)。

注釈: 正規表現パターンはまだサポートされていません。

  • デフォルト: []
  • 例: ["clsx", "cn", "cva", "tw"]

sortTailwindcss.preserveDuplicates

type: boolean

重複したクラスを保持する。

  • デフォルト: false

sortTailwindcss.preserveWhitespace

type: boolean

クラス周辺の空白を保持する。

  • デフォルト: false

sortTailwindcss.stylesheet

type: string

Tailwind CSS スタイルシート(v4)へのパス。

注釈: パスは、Oxfmt 設定ファイルからの相対パスで解決されます。

  • デフォルト: インストール済みの Tailwind CSS の theme.css

tabWidth

type: integer

インデントレベルあたりのスペース数を指定。

  • デフォルト: 2
  • .editorconfig.indent_size を上書き

trailingComma

type: "all" | "es5" | "none"

複数行のコンマ区切り構造で可能な限り末尾にコンマを出力する。

例:1行の配列は末尾にコンマが出ません。

  • デフォルト: "all"

useTabs

type: boolean

スペースの代わりにタブでインデントする。

  • デフォルト: false
  • .editorconfig.indent_style を上書き

vueIndentScriptAndStyle

type: boolean

Vue ファイル内の <script> および <style> タグ内のコードをインデントするかどうか。

  • デフォルト: false