コンテンツにスキップ

Formatter

Biomeは複数の言語をサポートする、opinionatedなフォーマッタです。 Prettierと近い哲学に従い、 スタイルに関する議論がBiomeのオプションに関する議論に発展するのを避けるために、いくつかのオプションのみをサポートしています。 チーム内での些細な議論を防ぎ、本当に重要なことに集中できるようにするために、新しいオプションを意図的に追加しないようにしています。

次のコマンドは、src ディレクトリ内のファイルのフォーマットをチェックします。 フォーマットされていないコードが見つかった場合、テキストの差分を出力します。

npx @biomejs/biome format ./src

新しいフォーマットを適用する場合は、--write オプションを渡してください:

npx @biomejs/biome format --write ./src

このコマンドは、ファイルとディレクトリのリストを受け入れます。

利用可能なすべてのオプションの詳細については、CLIリファレンスを確認してください。

Biomeは、フォーマッタの動作を調整するためのいくつかのオプションを提供しています。 他のツールとは異なり、Biomeは言語に依存しないオプションと言語固有のオプションを分離しています。

フォーマッタオプションは、CLIまたはBiome設定ファイルで設定できます。 v1.9以降、Biomeは .editorconfig ファイルの読み込みをサポートしています。

Biome設定ファイルを使用して、Biome CLIとBiome LSPの両方に同じオプションが適用されるようにすることをお勧めします。 以下のデフォルト設定が適用されます:

biome.json
{
"formatter": {
"enabled": true,
"formatWithErrors": false,
"ignore": [],
"attributePosition": "auto",
"indentStyle": "tab",
"indentWidth": 2,
"lineWidth": 80,
"lineEnding": "lf"
},
"javascript": {
"formatter": {
"arrowParentheses":"always",
"bracketSameLine": false,
"bracketSpacing": true,
"jsxQuoteStyle": "double",
"quoteProperties": "asNeeded",
"semicolons": "always",
"trailingCommas": "all"
}
},
"json": {
"formatter": {
"trailingCommas": "none"
}
}
}

Biomeフォーマッタがサポートする、言語に依存しない主なオプションは次のとおりです:

  • インデントスタイル(デフォルト:tab):インデントにスペースまたはタブを使用します。
  • インデント幅(デフォルト:2):インデントレベルごとのスペースの数です。
  • 行幅(デフォルト:80):Biomeがコードを折り返す列幅です。

詳細については、設定リファレンスを参照してください。

フォーマットされたコードが理想的でない場合があります。

ファイル全体に対してフォーマッタを抑制(無視)するには、ファイルの先頭biome-ignore-all format: reason コメントを使用します:

例えば、JavaScriptの場合:

example.js
// biome-ignore-all format: generated file
const expr1 =
[
(2 * n) / (r - l),
0,
(r + l) / (r - l),
-1,
0,
];
const expr2 =
[
(2 * n) / (r - l),
0,
(r + l) / (r - l),
-1,
0,
];

コードの一部(ノード)だけを抑制したい場合は、抑制コメント biome-ignore format: reason を使用します

example.js
// biome-ignore format: reason

例:

example.js
const expr =
// biome-ignore format: この配列はフォーマットさせない。
[
(2 * n) / (r - l),
0,
(r + l) / (r - l),
0,
0,
(2 * n) / (t - b),
(t + b) / (t - b),
0,
0,
0,
-(f + n) / (f - n),
-(2 * f * n) / (f - n),
0,
0,
-1,
0,
];