禁用检查
Biome 分析器是 linter 和 assist 的基础;事实上,这两个工具有很多相似之处。
其中,它们共享同一个禁用检查引擎,这意味着你可以用同样的方式禁用 lint 规则和 assist 操作。
通过禁用检查,可以为特定代码行、代码范围或整个文件关闭检查或操作。
禁用检查可以通过 禁用检查注释 来实现。
禁用检查语法
Section titled “禁用检查语法”禁用检查注释具有以下格式:
// 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 “行内禁用检查”它们为代码的 下一行 禁用 lint 规则。
在下面的示例中,禁用检查注释 biome-ignore lint/suspicious/noDebugger: <说明> 将禁用第 2 行的 debugger; 语句,但第 3 行的 debugger 仍会触发诊断:
// biome-ignore lint/suspicious/noDebugger: <说明>debugger;debugger;顶层禁用检查
Section titled “顶层禁用检查”它们为整个文件禁用 lint 规则。它们必须放在 文件顶部,并且必须以 biome-ignore-all 开头。
当你想要为 特定文件 禁用某些 lint 规则,而又不想依赖单一的配置覆盖来实现时,这些禁用检查注释非常有用。
在下面的示例中,禁用检查注释 biome-ignore-all lint/suspicious/noDebugger: <说明> 将为 generated.js 中的所有行禁用 lint 规则:
// biome-ignore-all lint/suspicious/noDebugger: <说明>debugger;debugger;当顶层禁用检查注释不在文件顶部时,它被视为 未使用,Biome 将发出类别为 suppression/unused 的诊断。
范围禁用检查
Section titled “范围禁用检查”它们在文件的特定 范围内 禁用 lint 规则,从开始注释所在的行开始,直到结束注释所在的行结束。
要标记范围禁用检查的开始,禁用检查注释必须以 // biome-ignore-start 开头。要标记结束,禁用检查注释必须以 // biome-ignore-end 开头。
下面的示例将为第 2 行和第 3 行禁用规则 lint/suspicious/noDoubleEquals,但第 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 行的禁用检查注释 不会 触发诊断。 - 第 9 行的
f == g语句触发诊断,因为noDoubleEquals规则不再被禁用。 - 第 10 行的
// biome-ignore-end lint/suspicious/noDebugger: <说明>终止了第 2 行注释开始的noDebugger禁用。
Copyright (c) 2023-present Biome Developers and Contributors.