Configuration
$schema
Section titled $schemaAllows to pass a path to a JSON schema file.
We publish a JSON schema file for the biome.json
.
You can specify a relative path to the schema of the @biomejs/biome
npm package if @biomejs/biome
is installed in the node_modules
folder:
If you have problems with resolving the physical file, you can use the one published in this site:
extends
Section titled extendsA list of paths to other JSON files. Biome resolves and applies the options of the files contained in the extends
list, and eventually applies the options contained in the biome.json
file.
files
Section titled filesfiles.maxSize
Section titled files.maxSizeThe maximum allowed size for source code files in bytes. Files above this limit will be ignored for performance reasons.
Default:
1048576
(1024*1024, 1MB)
files.ignore
Section titled files.ignoreA list of Unix shell style patterns. Biome ignores files and folders that match these patterns.
files.include
Section titled files.includeA list of Unix shell style patterns. Biome handles only the files and folders that match these patterns.
Given the following example:
Only the files that match the pattern src/**/*.js
will be handled, while the files that match the pattern
scripts/**/*.js
will be ignored.
files.ignoreUnknown
Section titled files.ignoreUnknownBiome won’t emit diagnostics if it encounters files that can’t handle.
Default:
false
Set of properties to integrate Biome with a VCS (Version Control Software).
vcs.enabled
Section titled vcs.enabledWhether Biome should integrate itself with the VCS client
Default:
false
vcs.clientKind
Section titled vcs.clientKindThe kind of client.
Values:
"git"
vcs.useIgnoreFile
Section titled vcs.useIgnoreFileWhether Biome should use the VCS ignore file. When true
, Biome will ignore the files
specified in the ignore file.
vcs.root
Section titled vcs.rootThe folder where Biome should check for VCS files. By default, Biome will use the same
folder where biome.json
was found.
If Biome can’t find the configuration, it will attempt to use the current working directory. If no current working directory can’t be found, Biome won’t use the VCS integration, and a diagnostic will be emitted
vcs.defaultBranch
Section titled vcs.defaultBranchThe main branch of the project. Biome will use this branch when evaluating the changed files.
linter
Section titled linterlinter.enabled
Section titled linter.enabledEnables Biome’s linter
Default:
true
linter.ignore
Section titled linter.ignoreAn array of Unix shell style patterns.
linter.include
Section titled linter.includeA list of Unix shell style patterns. Biome handles only the files and folders that match these patterns.
Given the following example:
Only the files that match the patter src/**/*.js
will be linted, while the files that match the pattern
scripts/**/*.js
will be ignored.
linter.rules.recommended
Section titled linter.rules.recommendedEnables the recommended rules for all groups.
Default:
true
linter.rules.all
Section titled linter.rules.allEnable or disable all rules for all groups.
If recommended
and all
are both true
, Biome will emit a diagnostic and fallback to its defaults.
It’s also possible to combine this flag to enable/disable different rule groups:
In the previous example, Biome will enable all rules, exception for rules that belong to the style
and complexity
groups.
linter.rules.[group]
Section titled linter.rules.[group]Options that influence the rules of a single group. Biome supports the following groups:
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].recommendedEnables the recommended rules for a single group.
Example:
linter.rules.[group].all
Section titled linter.rules.[group].allEnables all rules for a single group.
Example:
formatter
Section titled formatterThese options apply to all languages. There are additional language-specific formatting options below.
formatter.enabled
Section titled formatter.enabledEnables Biome’s formatter
Default:
true
formatter.ignore
Section titled formatter.ignoreAn array of Unix shell style patterns.
formatter.include
Section titled formatter.includeA list of Unix shell style patterns. Biome handles only the files and folders that match these patterns.
Given the following example:
Only the files that match the patter src/**/*.js
will be formatted, while the files that match the pattern
scripts/**/*.js
will be ignored.
formatter.formatWithErrors
Section titled formatter.formatWithErrorsAllows to format a document that has syntax errors.
Default:
false
formatter.indentStyle
Section titled formatter.indentStyleThe style of the indentation. It can be "tab"
or "space"
.
Default:
"tab"
formatter.indentSize
Section titled formatter.indentSizeThis option is deprecated, please use formatter.indentWidth
instead.
Deprecated
How big the indentation should be.
Default:
2
formatter.indentWidth
Section titled formatter.indentWidthHow big the indentation should be.
Default:
2
formatter.lineEnding
Section titled formatter.lineEndingThe type of line ending.
"lf"
, Line Feed only (\n
), common on Linux and macOS as well as inside git repos;"crlf"
, Carriage Return + Line Feed characters (\r\n
), common on Windows;"cr"
, Carriage Return character only (\r
), used very rarely.
Default:
"lf"
formatter.lineWidth
Section titled formatter.lineWidthHow many characters can be written on a single line.
Default:
80
formatter.attributePosition
Section titled formatter.attributePositionThe attribute position style in HTMLish languages.
"auto"
, the attributes are automatically formatted, and they will collapse in multiple lines only when they hit certain criteria;"multiline"
, the attributes are always formatted on multiple lines, regardless.
Default:
"auto"
formatter.useEditorconfig
Section titled formatter.useEditorconfigWhether Biome should use the .editorconfig
file to determine the formatting options. If true
, the applicable options in the .editorconfig
file will be used, but any configuration in the biome.json
file will still take precedence.
When migrating from Prettier with biome migrate
, this option is set to true
to match the behavior of Prettier.
Default:
false
organizeImports
Section titled organizeImportsorganizeImports.enabled
Section titled organizeImports.enabledEnables Biome’s sort imports.
Default:
true
organizeImports.ignore
Section titled organizeImports.ignoreA list of Unix shell style patterns. Biome ignores files and folders that match these patterns.
organizeImports.include
Section titled organizeImports.includeA list of Unix shell style patterns. Biome handles only the files and folders that match these patterns.
Given the following example:
Only the files that match the patter src/**/*.js
will have their imports sorted, while the files that match the pattern
scripts/**/*.js
will be ignored.
javascript
Section titled javascriptThese options apply only to JavaScript (and TypeScript) files.
javascript.parser.unsafeParameterDecoratorsEnabled
Section titled javascript.parser.unsafeParameterDecoratorsEnabledAllows to support the unsafe/experimental parameter decorators.
Default:
false
javascript.formatter.quoteStyle
Section titled javascript.formatter.quoteStyleThe type of quote used when representing string literals. It can be "single"
or "double"
.
Default:
"double"
javascript.formatter.jsxQuoteStyle
Section titled javascript.formatter.jsxQuoteStyleThe type of quote used when representing jsx string literals. It can be "single"
or "double"
.
Default:
"double"
javascript.formatter.quoteProperties
Section titled javascript.formatter.quotePropertiesWhen properties inside objects should be quoted. It can be "asNeeded"
or "preserve"
.
Default:
"asNeeded"
javascript.formatter.trailingComma
Section titled javascript.formatter.trailingCommaThis option is deprecated, please use javascript.formatter.trailingCommas
instead.
Deprecated
Print trailing commas wherever possible in multi-line comma-separated syntactic structures. Possible values:
"all"
, the trailing comma is always added;"es5"
, the trailing comma is added only in places where it’s supported by older version of JavaScript;"none"
, trailing commas are never added.
Default:
"all"
javascript.formatter.trailingCommas
Section titled javascript.formatter.trailingCommasPrint trailing commas wherever possible in multi-line comma-separated syntactic structures. Possible values:
"all"
, the trailing comma is always added;"es5"
, the trailing comma is added only in places where it’s supported by older version of JavaScript;"none"
, trailing commas are never added.
Default:
"all"
javascript.formatter.semicolons
Section titled javascript.formatter.semicolonsIt configures where the formatter prints semicolons:
"always"
, the semicolons is always added at the end of each statement;"asNeeded"
, the semicolons are added only in places where it’s needed, to protect from ASI.
Default:
"always"
Example:
javascript.formatter.arrowParentheses
Section titled javascript.formatter.arrowParenthesesWhether to add non-necessary parentheses to arrow functions:
"always"
, the parentheses are always added;"asNeeded"
, the parentheses are added only when they are needed.
Default:
"always"
javascript.formatter.enabled
Section titled javascript.formatter.enabledEnables Biome’s formatter for JavaScript (and its super languages) files.
Default:
true
javascript.formatter.indentStyle
Section titled javascript.formatter.indentStyleThe style of the indentation for JavaScript (and its super languages) files. It can be "tab"
or "space"
.
Default:
"tab"
javascript.formatter.indentSize
Section titled javascript.formatter.indentSizeThis option is deprecated, please use javascript.formatter.indentWidth
instead.
Deprecated
How big the indentation should be for JavaScript (and its super languages) files.
Default:
2
javascript.formatter.indentWidth
Section titled javascript.formatter.indentWidthHow big the indentation should be for JavaScript (and its super languages) files.
Default:
2
javascript.formatter.lineEnding
Section titled javascript.formatter.lineEndingThe type of line ending for JavaScript (and its super languages) files.
"lf"
, Line Feed only (\n
), common on Linux and macOS as well as inside git repos;"crlf"
, Carriage Return + Line Feed characters (\r\n
), common on Windows;"cr"
, Carriage Return character only (\r
), used very rarely.
Default:
"lf"
javascript.formatter.lineWidth
Section titled javascript.formatter.lineWidthHow many characters can be written on a single line in JavaScript (and its super languages) files.
Default:
80
javascript.formatter.bracketSameLine
Section titled javascript.formatter.bracketSameLineChoose whether the ending >
of a multi-line JSX element should be on the last attribute line or not
Default:
false
javascript.formatter.bracketSpacing
Section titled javascript.formatter.bracketSpacingChoose whether spaces should be added between brackets and inner values
Default:
true
javascript.formatter.attributePosition
Section titled javascript.formatter.attributePositionThe attribute position style in jsx elements.
"auto"
, the attributes are automatically formatted, and they will collapse in multiple lines only when they hit certain criteria;"multiline"
, the attributes are always formatted on multiple lines, regardless.
Default:
"auto"
javascript.globals
Section titled javascript.globalsA list of global names that Biome should ignore (analyzer, linter, etc.)
javascript.jsxRuntime
Section titled javascript.jsxRuntimeIndicates the type of runtime or transformation used for interpreting JSX.
"transparent"
— Indicates a modern or native JSX environment, that doesn’t require special handling by Biome."reactClassic"
— Indicates a classic React environment that requires theReact
import. Corresponds to thereact
value for thejsx
option in TypeScript’stsconfig.json
.
For more information about the old vs. new JSX runtime, please see: https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html
Default:
"transparent"
javascript.linter.enabled
Section titled javascript.linter.enabledEnables Biome’s formatter for JavaScript (and its super languages) files.
Default:
true
Options applied to the JSON files.
json.parser.allowComments
Section titled json.parser.allowCommentsEnables the parsing of comments in JSON files.
json.parser.allowTrailingCommas
Section titled json.parser.allowTrailingCommasEnables the parsing of trailing Commas in JSON files.
json.formatter.enabled
Section titled json.formatter.enabledEnables Biome’s formatter for JSON (and its super languages) files.
Default:
true
json.formatter.indentStyle
Section titled json.formatter.indentStyleThe style of the indentation for JSON (and its super languages) files. It can be "tab"
or "space"
.
Default:
"tab"
json.formatter.indentSize
Section titled json.formatter.indentSizeThis option is deprecated, please use json.formatter.indentWidth
instead.
Deprecated
How big the indentation should be for JSON (and its super languages) files.
Default:
2
json.formatter.indentWidth
Section titled json.formatter.indentWidthHow big the indentation should be for JSON (and its super languages) files.
Default:
2
json.formatter.lineEnding
Section titled json.formatter.lineEndingThe type of line ending for JSON (and its super languages) files.
"lf"
, Line Feed only (\n
), common on Linux and macOS as well as inside git repos;"crlf"
, Carriage Return + Line Feed characters (\r\n
), common on Windows;"cr"
, Carriage Return character only (\r
), used very rarely.
Default:
"lf"
json.formatter.lineWidth
Section titled json.formatter.lineWidthHow many characters can be written on a single line in JSON (and its super languages) files.
Default:
80
json.formatter.trailingCommas
Section titled json.formatter.trailingCommasPrint trailing commas wherever possible in multi-line comma-separated syntactic structures.
Allowed values:
"none"
: the trailing comma is removed;"all"
: the trailing comma is kept and preferred.
Default:
"none"
json.linter.enabled
Section titled json.linter.enabledEnables Biome’s formatter for JSON (and its super languages) files.
Default:
true
Options applied to the CSS files.
css.parser.cssModules
Section titled css.parser.cssModulesEnables parsing of CSS modules
Default:
false
css.formatter.enabled
Section titled css.formatter.enabledEnables Biome’s formatter for CSS (and its super languages) files.
Default:
false
css.formatter.indentStyle
Section titled css.formatter.indentStyleThe style of the indentation for CSS (and its super languages) files. It can be "tab"
or "space"
.
Default:
"tab"
css.formatter.indentWidth
Section titled css.formatter.indentWidthHow big the indentation should be for CSS (and its super languages) files.
Default:
2
css.formatter.lineEnding
Section titled css.formatter.lineEndingThe type of line ending for CSS (and its super languages) files.
"lf"
, Line Feed only (\n
), common on Linux and macOS as well as inside git repos;"crlf"
, Carriage Return + Line Feed characters (\r\n
), common on Windows;"cr"
, Carriage Return character only (\r
), used very rarely.
Default:
"lf"
css.formatter.lineWidth
Section titled css.formatter.lineWidthHow many characters can be written on a single line in JSON (and its super languages) files.
Default:
80
css.formatter.quoteStyle
Section titled css.formatter.quoteStyleThe type of quote used when representing string literals. It can be "single"
or "double"
.
Default:
"double"
css.linter.enabled
Section titled css.linter.enabledEnables Biome’s linter for CSS (and its super languages) files.
Default:
false
overrides
Section titled overridesA list of patterns.
Use this configuration to change the behaviour of the tools for certain files.
When a file is matched against an override pattern, the configuration specified in that pattern will be override the top-level configuration.
The order of the patterns matter. If a file can match three patterns, only the first one is used.
overrides.<ITEM>.ignore
Section titled overrides.<ITEM>.ignoreA list of Unix shell style patterns. Biome will not apply the override to files that match the pattern.
overrides.<ITEM>.include
Section titled overrides.<ITEM>.includeA list of Unix shell style patterns. Biome will apply the override only to files that match the pattern.
overrides.<ITEM>.formatter
Section titled overrides.<ITEM>.formatterIt will include the options of top level formatter configuration, minus ignore
and include
.
Examples
Section titled ExamplesFor example, it’s possible to modify the formatter lineWidth
, indentStyle
for certain files that are included in the glob path generated/**
:
overrides.<ITEM>.linter
Section titled overrides.<ITEM>.linterIt will include the options of top level linter configuration, minus ignore
and include
.
Examples
Section titled ExamplesYou can disable certain rules for certain glob paths, and disable the linter for other glob paths:
overrides.<ITEM>.organizeImports
Section titled overrides.<ITEM>.organizeImportsIt will include the options of top level organize imports, minus ignore
and include
.
overrides.<ITEM>.javascript
Section titled overrides.<ITEM>.javascriptIt will include the options of top level javascript configuration.
Examples
Section titled ExamplesYou can change the formatting behaviour of JavaScript files in certain folders:
overrides.<ITEM>.json
Section titled overrides.<ITEM>.jsonIt will include the options of top level json configuration.
Examples
Section titled ExamplesYou can enable parsing features for certain JSON files: