抑制
Biomeのアナライザーは、リンターとアシストの基盤であり、これらの2つには多くの類似点があります。
例えば、どちらも同じ抑制エンジンを使用しており、リントルールを抑制するのと同じ方法でアシストアクションを抑制できます。
抑制を使うと、コードの特定の行、範囲、またはファイル全体に対してリントルール(またはアクション)を無効にすることができます。
抑制には、抑制コメントを使用します。
抑制コメントは以下の形式を持ちます。
// biome-ignore lint: <説明>// biome-ignore assist: <説明>// biome-ignore syntax: <説明>// biome-ignore lint/suspicious: <説明>// biome-ignore lint/suspicious/noDebugger: <説明>// biome-ignore lint/suspicious/noDebugger(foo): <説明>// biome-ignore-all lint: <説明>// biome-ignore-start lint: <説明>// biome-ignore-end lint: <説明>biome-ignore、biome-ignore-all、biome-ignore-start、biome-ignore-endは、抑制コメントの冒頭です。- スペースの後に、抑制コメントのカテゴリ(
lint、assist、syntaxのいずれか)を含めます。 - カテゴリの後に、スラッシュで区切られたオプションのグループ(例:
/suspicious)またはグループと名前(例:/suspicious/noDebugger)を含めます。より詳細に指定するほど、抑制の対象は狭くなります。 - 一部のルールでは、抑制の値を指定することもできます。値は、括弧(例:
(foo))で指定します。ルールが値による抑制をサポートしているかどうかは、ルールのドキュメントを参照します。 <説明>には、ルールを無効にした理由の説明を含めます。
ルールまたはアクションの正確なカテゴリがわからない場合は、ドキュメントを参照してその診断カテゴリを指定します。
インライン抑制
Section titled “インライン抑制”インライン抑制は、コードの次の行に対してリントルールを無効にします。
以下の例では、抑制コメントbiome-ignore lint/suspicious/noDebugger: 理由は2行目のdebuggerステートメントの診断を抑制しますが、3行目のdebuggerはこれまでと同様に診断が出力されます。
// biome-ignore lint/suspicious/noDebugger: 理由debugger;debugger;トップレベル抑制
Section titled “トップレベル抑制”トップレベル抑制は、ファイル全体に対してリントルールを無効にします。トップレベル抑制はファイルの先頭に配置され、biome-ignore-allで始まります。
トップレベル抑制は、特定のファイルに対してあるリントルールを抑制したいが、単一の設定による上書きを使いたくない場合に有用です。
以下の例では、抑制コメントbiome-ignore-all lint/suspicious/noDebugger: 理由は、generated.js内のすべての行でリントルールを無効にします。
// biome-ignore-all lint/suspicious/noDebugger: 理由debugger;debugger;トップレベル抑制のコメントがファイルの先頭にない場合、それは未使用とみなされ、Biomeはカテゴリsuppression/unusedの診断を出力します。
範囲抑制は、開始コメントのある行から、終了コメントのある行まで、ファイルの特定の範囲でリントルールを無効にします。
範囲抑制の開始を示すには、抑制コメントをbiome-ignore-startで始めます。終了を示すには、抑制コメントをbiome-ignore-endで始めます。
次の例では、ルールlint/suspicious/noDoubleEqualsは2行目と3行目では無効になりますが、5行目では診断が出力されます。
// biome-ignore-start lint/suspicious/noDoubleEquals: 理由a == b;c == d;// biome-ignore-end lint/suspicious/noDoubleEquals: 理由f == g;範囲抑制は重複することもできます。以下にその例を示します。
debugger;// biome-ignore-start lint/suspicious/noDebugger: 理由debugger;// biome-ignore-start lint/suspicious/noDoubleEquals: 理由a == b;c == d;// biome-ignore-end lint/suspicious/noDoubleEquals: 理由debugger;f == g;// biome-ignore-end lint/suspicious/noDebugger: 理由上記のコードでは、
- 1行目の
debuggerステートメントは、それを無効にする抑制コメントがないため、診断が出力されます。 - 2行目のコメント
// biome-ignore-start lint/suspicious/noDebugger: 理由は、3行目以降でnoDebuggerを無効化します。 - 4行目のコメント
// biome-ignore-start lint/suspicious/noDoubleEquals: 理由は、5行目以降でnoDoubleEqualsを無効化します。 - 7行目のコメント
// biome-ignore-end lint/suspicious/noDoubleEquals: 理由は、4行目の抑制コメントによって開始されたnoDoubleEqualsの抑制を終了します。 - 8行目の
debuggerステートメントは、2行目の抑制コメントにより診断が出力されません。 f == gステートメントは、ルールnoDoubleEqualsの抑制が以前の行で終了したため、診断が出力されます。- 10行目のコメント
// biome-ignore-end lint/suspicious/noDebugger: 理由は、2行目の抑制コメントによって開始されたnoDebuggerの抑制を終了します。
Copyright (c) 2023-present Biome Developers and Contributors.