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 リストは順序付きです:最初に一致する定義が使用されます。 カスタムグループはあらゆる事前定義グループよりも優先順位が高いです。
事前定義グループをカスタムグループより優先させたい場合、 事前定義グループと同じ動作をするカスタムグループ定義を作成し、リストの先頭に配置する必要があります。
elementNamePattern、selector、modifiers などの複数の条件を指定した場合、すべての条件が満たされた場合にのみインポートがカスタムグループにマッチします(論理積)。
- デフォルト:
[]
####### 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 オプションの項目の順序がグループの順序を決定します。
あるグループ内では、type、order、ignoreCase などのオプションに従ってメンバーが並べ替えられます。
個々のグループは配列にまとめて結合できます。 その配列内のグループの順序は重要ではありません。 配列内のすべてのグループのメンバーは、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つ以上の名前付き指定子を含むインポート。デフォルト: 以下を参照
["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 の場合、すべてのコメントが区切り文字として扱われ、パーティションが作成されます。
import { b1, b2 } from "b";
// PARTITION
import { a } from "a";
import { c } from "c";- デフォルト:
false
overrides[n].options.sortImports.partitionByNewline
type: boolean
空行を使用してインポートを論理的なグループに分ける機能を有効にする。
true になると、インポートの間に空行がある場合、フォーマッターはそれらをソートしません。 これにより、論理的に分離されたメンバーのグループの順序を維持できます。
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 リストは順序付きです:最初に一致する定義が使用されます。 カスタムグループはあらゆる事前定義グループよりも優先順位が高いです。
事前定義グループをカスタムグループより優先させたい場合、 事前定義グループと同じ動作をするカスタムグループ定義を作成し、リストの先頭に配置する必要があります。
elementNamePattern、selector、modifiers などの複数の条件を指定した場合、すべての条件が満たされた場合にのみインポートがカスタムグループにマッチします(論理積)。
- デフォルト:
[]
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 オプションの項目の順序がグループの順序を決定します。
あるグループ内では、type、order、ignoreCase などのオプションに従ってメンバーが並べ替えられます。
個々のグループは配列にまとめて結合できます。 その配列内のグループの順序は重要ではありません。 配列内のすべてのグループのメンバーは、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つ以上の名前付き指定子を含むインポート。デフォルト: 以下を参照
["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 の場合、すべてのコメントが区切り文字として扱われ、パーティションが作成されます。
import { b1, b2 } from "b";
// PARTITION
import { a } from "a";
import { c } from "c";- デフォルト:
false
sortImports.partitionByNewline
type: boolean
空行を使用してインポートを論理的なグループに分ける機能を有効にする。
true になると、インポートの間に空行がある場合、フォーマッターはそれらをソートしません。 これにより、論理的に分離されたメンバーのグループの順序を維持できます。
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
