配置
$schema
Section titled $schema允许传递一个JSON模式文件的路径。
我们为 biome.json
发布了一个JSON模式文件。
如果 @biomejs/biome
安装在 node_modules
文件夹中,你可以指定一个相对路径到 @biomejs/biome
npm包的模式:
如果你在解析物理文件时遇到问题,你可以使用在这个网站发布的文件:
extends
Section titled extends一个指向其他JSON文件的路径列表,这些文件将扩展当前的配置文件。
这个数组中定义的文件:
- 必须存在于文件系统中;
- 从定义
biome.json
文件的路径解析; - 必须是相对路径。不解析库路径;
- 必须能被Biome访问,例如,Biome可能无法解析符号链接;
- 将按顺序处理:从第一个到最后一个;
- 可以覆盖相同的属性,但最终只有最后一个会被Biome使用;
files
Section titled filesfiles.maxSize
Section titled files.maxSize源代码文件的最大允许大小(字节)。超过此限制的文件将出于性能原因被忽略。
默认值:1024*1024 (1MB)
files.ignore
Section titled files.ignore一组Unix shell样式的模式。Biome会忽略匹配这些模式的文件和文件夹。
files.include
Section titled files.include一组Unix shell样式的模式。Biome只处理匹配这些模式的文件和文件夹。
给出以下例子:
只有匹配 src/**/*.js
模式的文件将被处理,而匹配 scripts/**/*.js
模式的文件将被忽略。
files.ignoreUnknown
Section titled files.ignoreUnknown如果Biome遇到无法处理的文件,它将不会发出诊断。
默认值:false
一组用于将Biome与VCS软件集成的属性。
vcs.enabled
Section titled vcs.enabled是否应让Biome与VCS客户端集成
默认值:false
vcs.clientKind
Section titled vcs.clientKind客户端种类。
值:
"git"
vcs.useIgnoreFile
Section titled vcs.useIgnoreFileBiome是否应使用VCS忽略文件。当 true
时,Biome将忽略ignore文件中指定的文件。
vcs.root
Section titled vcs.rootBiome应检查VCS文件的文件夹。默认情况下,Biome将使用找到 biome.json
的同一文件夹。
如果Biome找不到配置,它将尝试使用当前工作目录。如果找不到当前工作目录,Biome将不使用VCS集成,并将发出诊断。
linter
Section titled linterlinter.enabled
Section titled linter.enabled启用Biome的linter
默认值:
true
linter.ignore
Section titled linter.ignore一组Unix shell样式的模式。
linter.include
Section titled linter.include一组Unix shell样式的模式。Biome只处理匹配这些模式的文件和文件夹。
给出以下例子:
只有匹配 src/**/*.js
模式的文件将被lint,而匹配 scripts/**/*.js
模式的文件将被忽略。
linter.rules.recommended
Section titled linter.rules.recommended启用所有组的推荐规则。
默认值:
true
linter.rules.all
Section titled linter.rules.all启用或禁用所有组的所有规则。
如果 recommended
和 all
都为 true
,Biome将发出诊断信息并回退到默认设置。
也可以组合此标志以启用/禁用不同的规则组:
在上面的例子中,Biome将启用所有规则,除了属于 style
和 complexity
组的规则。
linter.rules.[group]
Section titled linter.rules.[group]影响单个组规则的选项。Biome支持以下组:
accessibility
: Rules focused on preventing accessibility problems.complexity
: Rules that focus on inspecting complex code that could be simplified.correctness
: Rules that detect code that is guaranteed to be incorrect or useless.nursery
: New rules that are still under development. Nursery rules require explicit opt-in via configuration on stable versions because they may still have bugs or performance problems. They are enabled by default on nightly builds, but as they are unstable their diagnostic severity may be set to either error or warning, depending on whether we intend for the rule to be recommended or not when it eventually gets stabilized. Nursery rules get promoted to other groups once they become stable or may be removed. Rules that belong to this group are not subject to semantic version.performance
: Rules catching ways your code could be written to run faster, or generally be more efficient.security
: Rules that detect potential security flaws.style
: Rules enforcing a consistent and idiomatic way of writing your code.suspicious
: Rules that detect code that is likely to be incorrect or useless.linter.rules.[group].recommended
Section titled linter.rules.[group].recommended启用单个组的推荐规则。
例子:
linter.rules.[group].all
Section titled linter.rules.[group].all启用单个组的所有规则。
例子:
formatter
Section titled formatter这些选项适用于所有语言。 以下还有一些特定于语言的格式化选项。
formatter.enabled
Section titled formatter.enabled启用 Biome 的格式化器
默认值:
true
formatter.ignore
Section titled formatter.ignore一组Unix shell样式的模式。
formatter.include
Section titled formatter.include一组Unix shell样式的模式。Biome只处理匹配这些模式的文件和文件夹。
给出以下例子:
只有匹配 src/**/*.js
模式的文件将被格式化,而匹配 scripts/**/*.js
模式的文件将被忽略。
formatter.formatWithErrors
Section titled formatter.formatWithErrors允许格式化包含语法错误的文档。
默认值:
false
formatter.indentStyle
Section titled formatter.indentStyle缩进的样式。可以是"tab"
或"space"
。
默认值:
tab
formatter.indentSize
Section titled formatter.indentSize缩进应该是多大。
默认值:
2
formatter.indentWidth
Section titled formatter.indentWidth缩进应该是多大。
默认值:
2
formatter.lineEnding
Section titled formatter.lineEnding行结束的类型。
lf
,仅换行符(\n
),在Linux和macOS以及git仓库内部常见crlf
回车 + 换行字符(\r\n
),在Windows上常见cr
仅回车字符(\r
),非常罕见
默认值:
lf
formatter.lineWidth
Section titled formatter.lineWidth一行可以写多少个字符。
默认值:
80
organizeImports
Section titled organizeImportsorganizeImports.enabled
Section titled organizeImports.enabled启用Biome的排序导入。
默认值:
true
organizeImports.ignore
Section titled organizeImports.ignore一组Unix shell样式的模式。Biome会忽略匹配这些模式的文件和文件夹。
organizeImports.include
Section titled organizeImports.include一组Unix shell样式的模式。Biome只处理匹配这些模式的文件和文件夹。
给出以下例子:
只有匹配 src/**/*.js
模式的文件会排序其导入,而匹配 scripts/**/*.js
模式的文件将被忽略。
javascript
Section titled javascript这些选项仅适用于JavaScript (和TypeScript) 文件。
javascript.parser.unsafeParameterDecoratorsEnabled
Section titled javascript.parser.unsafeParameterDecoratorsEnabled允许支持不安全/实验性参数装饰器。
默认值:
false
javascript.formatter.quoteStyle
Section titled javascript.formatter.quoteStyle表示字符串字面值时使用的引号类型。可以是 single
或 double
。
默认值:
double
javascript.formatter.jsxQuoteStyle
Section titled javascript.formatter.jsxQuoteStyle表示jsx字符串字面值时使用的引号类型。可以是 single
或 double
。
默认值:
double
javascript.formatter.quoteProperties
Section titled javascript.formatter.quoteProperties对象内属性何时应该被引号包围。可以是 asNeeded
或 preserve
。
默认值:
asNeeded
javascript.formatter.trailingCommas
Section titled javascript.formatter.trailingCommas在多行逗号分隔的语法结构中尽可能地打印尾随逗号。可能的值:
all
,尾随逗号总是被添加es5
,尾随逗号只在旧版本的JavaScript支持的地方被添加none
,尾随逗号从不被添加
默认值:
all
javascript.formatter.semicolons
Section titled javascript.formatter.semicolons配置格式化器在哪里打印分号:
always
,在每个语句的末尾总是添加分号;asNeeded
,只在需要的地方添加分号,以防止ASI
默认值:
always
例子:
javascript.formatter.arrowParentheses
Section titled javascript.formatter.arrowParentheses是否在箭头函数中添加非必须的括号:
always
,总是添加括号;asNeeded
,只在需要时添加括号;
默认值:
always
javascript.formatter.enabled
Section titled javascript.formatter.enabled启用Biome的格式化器用于JavaScript (和其超级语言) 文件。
默认值:
true
javascript.formatter.indentStyle
Section titled javascript.formatter.indentStyleJavaScript (和其超级语言) 文件的缩进样式。可以是"tab"
或"space"
。
默认值:
tab
javascript.formatter.indentSize
Section titled javascript.formatter.indentSizeJavaScript (和其超级语言) 文件的缩进应该是多大。
默认值:
2
javascript.formatter.lineEnding
Section titled javascript.formatter.lineEndingJavaScript (和其超级语言) 文件的行结束类型。
lf
,仅换行符(\n
),在Linux和macOS以及git仓库内部常见crlf
回车 + 换行字符(\r\n
),在Windows上常见cr
仅回车字符(\r
),非常罕见
默认值:
lf
javascript.formatter.lineWidth
Section titled javascript.formatter.lineWidth在JavaScript (和其超级语言) 文件中一行可以写多少个字符。
默认值:
80
javascript.globals
Section titled javascript.globalsBiome应忽略的全局名称列表(分析器,linter等)
应用于JSON文件的选项。
json.parser.allowComments
Section titled json.parser.allowComments在JSON文件中启用注释的解析。
json.parser.allowTrailingCommas
Section titled json.parser.allowTrailingCommas在JSON文件中启用尾随逗号的解析。
json.formatter.enabled
Section titled json.formatter.enabled启用Biome的格式化器用于JSON (和其超级语言) 文件。
默认值:
true
json.formatter.indentStyle
Section titled json.formatter.indentStyleJSON (和其超级语言) 文件的缩进样式。可以是"tab"
或"space"
。
默认值:
tab
json.formatter.indentSize
Section titled json.formatter.indentSizeJSON (和其超级语言) 文件的缩进应该是多大。
默认值:
2
json.formatter.lineEnding
Section titled json.formatter.lineEndingJSON (和其超级语言) 文件的行结束类型。
lf
,仅换行符(\n
),在Linux和macOS以及git仓库内部常见crlf
回车 + 换行字符(\r\n
),在Windows上常见cr
仅回车字符(\r
),非常罕见
默认值:
lf
json.formatter.lineWidth
Section titled json.formatter.lineWidth在JSON (和其超级语言) 文件中一行可以写多少个字符。
默认值:
80
overrides
Section titled overrides模式列表。
使用此配置更改某些文件的工具行为。
当文件与覆盖模式匹配时,该模式中指定的配置将覆盖顶级配置。
模式的顺序很重要。如果一个文件可以匹配三个模式,只使用第一个。
overrides.<ITEM>.ignore
Section titled overrides.<ITEM>.ignore一组Unix shell样式的模式。Biome将不对匹配该模式的文件应用覆盖。
overrides.<ITEM>.include
Section titled overrides.<ITEM>.include一组Unix shell样式的模式。Biome将只对匹配这些模式的文件应用覆盖。
overrides.<ITEM>.formatter
Section titled overrides.<ITEM>.formatter它将包括 顶级格式化器 配置的选项,减去 ignore
和 include
。
例如,可以修改在 glob 路径 generated/**
包含的某些文件的格式化器 lineWidth
,indentStyle
:
overrides.<ITEM>.linter
Section titled overrides.<ITEM>.linter它将包括 顶级 linter 配置的选项,减去 ignore
和 include
。
可以为某些 glob 路径禁用某些规则,并为其他 glob 路径禁用 linter:
overrides.<ITEM>.organizeImports
Section titled overrides.<ITEM>.organizeImports它将包括 顶级组织导入 的选项,减去 ignore
和 include
。
overrides.<ITEM>.javascript
Section titled overrides.<ITEM>.javascript它将包括 顶级 javascript 配置的选项。
可以更改某些文件夹中的JavaScript文件的格式化行为:
overrides.<ITEM>.json
Section titled overrides.<ITEM>.json它将包括 顶级 json 配置的选项。
可以为某些JSON文件启用解析特性: