Configuration
$schema
Section titled $schemaPermet de passer un chemin vers un fichier de schéma JSON.
Nous publions un schéma JSON pour le fichier biome.json
.
Vous pouvez spécifier un chemin relatif vers le schéma du paquet npm @biomejs/biome
si @biomejs/biome
est installé dans le dossier node_modules
:
{ "$schema": "./node_modules/@biomejs/biome/configuration_schema.json"}
Si vous avez des problèmes avec la résolution du fichier sur disque, vous pouvez utiliser celui que nous publions sur notre site :
{ "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json"}
extends
Section titled extendsUne liste de chemins vers d’autres fichiers JSON. Biome résoud et applique les options des fichiers contenus dans la liste extends
, puis applique celles contenues dans le fichier biome.json
.
files
Section titled filesfiles.maxSize
Section titled files.maxSizeLa taille maximale autorisée pour les fichiers de code source, en octets. Les fichiers dépassant cette limite seront ignorés pour des questions de performance.
Valeur par défaut :
1048576
(1024*1024, 1 Mo)
files.ignore
Section titled files.ignoreUne liste de modèles de style de shell Unix. Biome ignore les fichiers et les dossiers qui correspondent à ces modèles.
{ "files": { "ignore": ["scripts/*.js"] }}
files.include
Section titled files.includeUne liste de modèles de style de shell Unix. Biome ne prend en charge que les fichiers et les dossiers qui correspondent à ces modèles.
{ "files": { "include": ["scripts/*.js"] }}
Soit l’exemple suivant :
{ "files": { "include": ["scripts/**/*.js", "src/**/*.js"], "ignore": ["scripts/**/*.js"] }}
Seuls les fichiers correspondant au modèle src/**/*.js
seront pris en charge, tandis que ceux correspondant au modèle
scripts/**/*.js
seront ignorés.
files.ignoreUnknown
Section titled files.ignoreUnknownBiome n’engendrera pas de diagnostics s’il rencontre des fichiers qu’il ne peut pas prendre en charge.
{ "files": { "ignoreUnknown": true }}
Valeur par défaut :
false
Ensemble de propriétés pour intégrer Biome à un VCS (logiciel de contrôle de versions, Version Control Software).
vcs.enabled
Section titled vcs.enabledSi Biome devrait s’intégrer au client VCS ou non.
Valeur par défaut :
false
vcs.clientKind
Section titled vcs.clientKindLe type de client.
Valeurs :
"git"
vcs.useIgnoreFile
Section titled vcs.useIgnoreFileSi Biome devrait utiliser le fichier ignore du VCS ou non. Si true
, Biome ignorera les fichiers
spécifiés dans le fichier ignore.
vcs.root
Section titled vcs.rootLe dossier où Biome devrait vérifier les fichiers du VCS. Par défaut, Biome utilisera le même
dossier où biome.json
a été trouvé.
Si Biome ne peut pas trouver la configuration, il tentera d’utiliser le répertoire de l’espace de travail actuel. Si aucun répertoire de l’espace de travail actuel ne peut être trouvé, Biome n’utilisera pas l’intégration au VCS et un diagnostic sera généré.
vcs.defaultBranch
Section titled vcs.defaultBranchLa branche principale du projet. Biome utilisera cette branche quand il évaluera les fichiers modifiés.
linter
Section titled linterlinter.enabled
Section titled linter.enabledActive l’outil de linting de Biome.
Valeur par défaut :
true
linter.ignore
Section titled linter.ignoreUn tableau de modèles de style de shell Unix.
{ "linter": { "ignore": ["scripts/*.js"] }}
linter.include
Section titled linter.includeUne liste de modèles de style de shell Unix. Biome ne prend en charge que les fichiers et les dossiers qui correspondent à ces modèles.
{ "linter": { "include": ["scripts/*.js"] }}
Soit l’exemple suivant :
{ "linter": { "include": ["scripts/**/*.js", "src/**/*.js"], "ignore": ["scripts/**/*.js"] }}
Seuls les fichiers correspondant au modèle src/**/*.js
seront analysés, tandis que ceux correspondant au modèle
scripts/**/*.js
seront ignorés.
linter.rules.recommended
Section titled linter.rules.recommendedActive les règles recommandées pour tous les groupes.
Valeur par défaut :
true
linter.rules.all
Section titled linter.rules.allActive ou désactive toutes les règles pour tous les groupes.
Si recommended
et all
sont en même temps à true
, Biome engendrera un diagnostic et se repliera sur ses réglages par défaut.
{ "linter": { "enabled": true, "rules": { "all": true } }}
Il est également possible de combiner ce drapeau pour activer/désactiver différents groupes de règles :
{ "linter": { "enabled": true, "rules": { "all": true, "style": { "all": false }, "complexity": { "all": false } } }}
Dans l’exemple précédent, Biome activera toutes les règles, à l’exception de celles appartenant aux groupes style
et complexity
.
linter.rules.[groupe]
Section titled linter.rules.[groupe]Options qui influencent les règles d’un seul groupe. Biome prend en charge les groupes suivants :
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.[groupe].recommended
Section titled linter.rules.[groupe].recommendedActive les règles recommandées pour un seul groupe.
Exemple :
{ "linter": { "enabled": true, "rules": { "nursery": { "recommended": true } } }}
linter.rules.[groupe].all
Section titled linter.rules.[groupe].allActive toutes les règles pour un seul groupe.
Exemple :
{ "linter": { "enabled": true, "rules": { "nursery": { "all": true } } }}
formatter
Section titled formatterCes options s’appliquent à tous les langages. Plus loin, il y a des options de formatage supplémentaires propres à un langage.
formatter.enabled
Section titled formatter.enabledActive l’outil de formatage de Biome.
Valeur par défaut :
true
formatter.ignore
Section titled formatter.ignoreUn tableau de modèles de style de shell Unix.
{ "formatter": { "ignore": ["scripts/*.js"] }}
formatter.include
Section titled formatter.includeUne liste de modèles de style de shell Unix. Biome ne prend en charge que les fichiers et les dossiers qui correspondent à ces modèles.
{ "formatter": { "include": ["scripts/*.js"] }}
Soit l’exemple suivant :
{ "formatter": { "include": ["scripts/**/*.js", "src/**/*.js"], "ignore": ["scripts/**/*.js"] }}
Seuls les fichiers correspondant au modèle src/**/*.js
seront formatés, tandis que ceux correspondant au modèle
scripts/**/*.js
seront ignorés.
formatter.formatWithErrors
Section titled formatter.formatWithErrorsPermet de formater un document comportant des erreurs de syntaxe.
{ "formatter": { "formatWithErrors": true }}
Valeur par défaut :
false
formatter.indentStyle
Section titled formatter.indentStyleLe style d’indentation. La valeur peut être "tab"
ou "space"
.
Valeur par défaut :
"tab"
formatter.indentSize
Section titled formatter.indentSizeCette option est obsolète, veuillez utiliser formatter.indentWidth
à la place.
Obsolète
Quelle devrait être la largeur de l’indentation.
Valeur par défaut :
2
formatter.indentWidth
Section titled formatter.indentWidthQuelle devrait être la largeur de l’indentation.
Valeur par défaut :
2
formatter.lineEnding
Section titled formatter.lineEndingLe type de fin de ligne :
"lf"
: caractère de retour à la ligne seulement (\n
), courant sur Linux et macOS, ainsi que dans les dépôts git ;"crlf"
: caractère de retour chariot + caractère de retour à la ligne (\r\n
), courant sur Windows ;"cr"
: caractère de retour chariot seulement (\r
), très rarement utilisé.
Valeur par défaut :
"lf"
formatter.lineWidth
Section titled formatter.lineWidthCombien de caractères peuvent être écrits sur une seule ligne.
Valeur par défaut :
80
formatter.attributePosition
Section titled formatter.attributePositionLe style de positionnement d’un attribut dans les langages HTML et assimilés :
"auto"
: les attributs sont automatiquement formatés et ne se répartiront en plusieurs lignes que s’ils répondent à certains critères ;"multiline"
: les attributs sont toujours formatés en plusieurs lignes, quoi qu’il en soit.
Valeur par défaut :
"auto"
formatter.useEditorconfig
Section titled formatter.useEditorconfigSi Biome devrait utiliser le fichier .editorconfig
pour déterminer les options de formatage ou non. Si true
, les options applicables dans le fichier .editorconfig
seront utilisées ; mais, toute configuration dans le fichier biome.json
sera toujours prioritaire.
En migrant depuis Prettier avec biome migrate
, cette option est définie à true
pour se conformer au comportement de Prettier.
Valeur par défaut :
false
organizeImports
Section titled organizeImportsorganizeImports.enabled
Section titled organizeImports.enabledActive le tri des imports par Biome.
Valeur par défaut :
true
organizeImports.ignore
Section titled organizeImports.ignoreUne liste de modèles de style de shell Unix. Biome ignore les fichiers et les dossiers qui correspondent à ces modèles.
{ "organizeImports": { "ignore": ["scripts/*.js"] }}
organizeImports.include
Section titled organizeImports.includeUne liste de modèles de style de shell Unix. Biome ne prend en charge que les fichiers et les dossiers qui correspondent à ces modèles.
{ "organizeImports": { "include": ["scripts/*.js"] }}
Soit l’exemple suivant :
{ "organizeImports": { "include": ["scripts/**/*.js", "src/**/*.js"], "ignore": ["scripts/**/*.js"] }}
Seuls les fichiers correspondant au modèle src/**/*.js
verront leurs imports triés, tandis que ceux correspondant au modèle
scripts/**/*.js
seront ignorés.
javascript
Section titled javascriptCes options ne s’appliquent qu’aux fichiers JavaScript (et TypeScript).
javascript.parser.unsafeParameterDecoratorsEnabled
Section titled javascript.parser.unsafeParameterDecoratorsEnabledPermet la prise en charge des décorateurs de paramètre non sûrs/expérimentaux.
{ "javascript": { "parser": { "unsafeParameterDecoratorsEnabled": true } }}
Valeur par défaut :
false
javascript.formatter.quoteStyle
Section titled javascript.formatter.quoteStyleLe type de guillemets utilisé pour représenter les littéraux de chaîne. La valeur peut être "single"
ou "double"
.
Valeur par défaut :
"double"
javascript.formatter.jsxQuoteStyle
Section titled javascript.formatter.jsxQuoteStyleLe type de guillemets utilisé pour représenter les littéraux de chaîne JSX. La valeur peut être "single"
ou "double"
.
Valeur par défaut :
"double"
javascript.formatter.quoteProperties
Section titled javascript.formatter.quotePropertiesQuand les propriétés d’objet devraient être entourées de guillemets. La valeur peut être "asNeeded"
ou "preserve"
.
Valeur par défaut :
"asNeeded"
javascript.formatter.trailingComma
Section titled javascript.formatter.trailingCommaCette option est obsolète, veuillez utiliser javascript.formatter.trailingCommas
à la place.
Obsolète
Ajoute si possible des virgules de fin dans les structures syntaxiques séparées par des virgules et réparties sur plusieurs lignes. Valeurs possibles :
"all"
: la virgule de fin est toujours ajoutée ;"es5"
: la virgule de fin n’est ajoutée qu’aux endroits où elle est prise en charge par les anciennes versions de JavaScript ;"none"
: les virgules de fin ne sont jamais ajoutées.
Valeur par défaut :
"all"
javascript.formatter.trailingCommas
Section titled javascript.formatter.trailingCommasAjoute si possible des virgules de fin dans les structures syntaxiques séparées par des virgules et réparties sur plusieurs lignes. Valeurs possibles :
"all"
: la virgule de fin est toujours ajoutée ;"es5"
: la virgule de fin n’est ajoutée qu’aux endroits où elle est prise en charge par les anciennes versions de JavaScript ;"none"
: les virgules de fin ne sont jamais ajoutées.
Valeur par défaut :
"all"
javascript.formatter.semicolons
Section titled javascript.formatter.semicolonsConfigure l’endroit où l’outil de formatage insère les points-virgules :
"always"
: les points-virgules sont toujours ajoutés à la fin de chaque instruction ;"asNeeded"
: les points-virgules ne sont ajoutés qu’aux endroits où ils sont nécessaires, pour protéger le code de l’insertion automatique de points-virgules.
Valeur par défaut :
"always"
Exemple :
{ "javascript": { "formatter": { "semicolons": "asNeeded" } }}
javascript.formatter.arrowParentheses
Section titled javascript.formatter.arrowParenthesesS’il faut ajouter ou non des parenthèses non nécessaires aux fonctions fléchées :
"always"
: les parenthèses sont toujours ajoutées ;"asNeeded"
: les parenthèses ne sont ajoutées que si elles sont nécessaires.
Valeur par défaut :
"always"
javascript.formatter.enabled
Section titled javascript.formatter.enabledActive l’outil de formatage de Biome pour les fichiers JavaScript (et ses super-langages).
Valeur par défaut :
true
javascript.formatter.indentStyle
Section titled javascript.formatter.indentStyleLe style d’indentation pour les fichiers JavaScript (et ses super-langages). La valeur peut être "tab"
ou "space"
.
Valeur par défaut :
"tab"
javascript.formatter.indentSize
Section titled javascript.formatter.indentSizeCette option est obsolète, veuillez utiliser javascript.formatter.indentWidth
à la place.
Obsolète
Quelle devrait être la largeur de l’indentation pour les fichiers JavaScript (et ses super-langages).
Valeur par défaut :
2
javascript.formatter.indentWidth
Section titled javascript.formatter.indentWidthQuelle devrait être la largeur de l’indentation pour les fichiers JavaScript (et ses super-langages).
Valeur par défaut :
2
javascript.formatter.lineEnding
Section titled javascript.formatter.lineEndingLe type de fin de ligne pour les fichiers JavaScript (et ses super-langages) :
"lf"
: caractère de retour à la ligne seulement (\n
), courant sur Linux et macOS, ainsi que dans les dépôts git ;"crlf"
: caractère de retour chariot + caractère de retour à la ligne (\r\n
), courant sur Windows ;"cr"
: caractère de retour chariot seulement (\r
), très rarement utilisé.
Valeur par défaut :
"lf"
javascript.formatter.lineWidth
Section titled javascript.formatter.lineWidthCombien de caractères peuvent être écrits sur une seule ligne dans les fichiers JavaScript (et ses super-langages).
Valeur par défaut :
80
javascript.formatter.bracketSameLine
Section titled javascript.formatter.bracketSameLineDétermine si le >
de fin d’un élément JSX écrit sur plusieurs lignes devrait être sur la ligne du dernier attribut ou non.
Valeur par défaut :
false
javascript.formatter.bracketSpacing
Section titled javascript.formatter.bracketSpacingDétermine si les espaces devraient être ajoutés ou non entre les accolades et les valeurs à l’intérieur de ces dernières.
Valeur par défaut :
true
javascript.formatter.attributePosition
Section titled javascript.formatter.attributePositionLe style de positionnement d’un attribut dans les éléments JSX.
"auto"
: les attributs sont automatiquement formatés et ne se répartiront en plusieurs lignes que s’ils répondent à certains critères ;"multiline"
: les attributs sont toujours formatés en plusieurs lignes, quoi qu’il en soit.
Valeur par défaut :
"auto"
javascript.globals
Section titled javascript.globalsUne liste de noms globaux que Biome devrait ignorer (analyzer, linter, etc.).
{ "javascript": { "globals": ["$", "_", "externalVariable"] }}
javascript.jsxRuntime
Section titled javascript.jsxRuntimeIndique le type d’environnement d’exécution ou de transformation utilisé pour interpréter le JSX.
"transparent"
: indique un environment JSX moderne ou natif, qui ne requiert pas de prise en charge spéciale par Biome ;"reactClassic"
: indique un environment React classique qui requiert l’importReact
, correspond à la valeurreact
de l’optionjsx
dans letsconfig.json
de TypeScript.
{ "javascript": { "jsxRuntime": "reactClassic" }}
Pour plus de renseignements sur les environnements d’exécution JSX anciens et nouveaux, veuillez consulter : https://legacy.reactjs.org/blog/2020/09/22/introducing-the-new-jsx-transform.html
Valeur par défaut :
"transparent"
javascript.linter.enabled
Section titled javascript.linter.enabledActive l’outil de linting de Biome pour les fichiers JavaScript (et ses super-langages).
Valeur par défaut :
true
Options appliquées aux fichiers JSON.
json.parser.allowComments
Section titled json.parser.allowCommentsActive l’analyse des commentaires dans les fichiers JSON.
{ "json": { "parser": { "allowComments": true } }}
json.parser.allowTrailingCommas
Section titled json.parser.allowTrailingCommasActive l’analyse des virgules de fin dans les fichiers JSON.
{ "json": { "parser": { "allowTrailingCommas": true } }}
json.formatter.enabled
Section titled json.formatter.enabledActive l’outil de formatage de Biome pour les fichiers JSON (et ses super-langages).
Valeur par défaut :
true
json.formatter.indentStyle
Section titled json.formatter.indentStyleLe style d’indentation pour les fichiers JSON (et ses super-langages). La valeur peut être "tab"
ou "space"
.
Valeur par défaut :
"tab"
json.formatter.indentSize
Section titled json.formatter.indentSizeCette option est obsolète, veuillez utiliser json.formatter.indentWidth
à la place.
Obsolète
Quelle devrait être la largeur de l’indentation pour les fichiers JSON (et ses super-langages).
Valeur par défaut :
2
json.formatter.indentWidth
Section titled json.formatter.indentWidthQuelle devrait être la largeur de l’indentation pour les fichiers JSON (et ses super-langages).
Valeur par défaut :
2
json.formatter.lineEnding
Section titled json.formatter.lineEndingLe type de fin de ligne pour les fichiers JSON (et ses super-langages).
"lf"
: caractère de retour à la ligne seulement (\n
), courant sur Linux et macOS, ainsi que dans les dépôts git ;"crlf"
: caractère de retour chariot + caractère de retour à la ligne (\r\n
), courant sur Windows ;"cr"
: caractère de retour chariot seulement (\r
), très rarement utilisé.
Valeur par défaut :
"lf"
json.formatter.lineWidth
Section titled json.formatter.lineWidthCombien de caractères peuvent être écrits sur une seule ligne dans les fichiers JSON (et ses super-langages).
Valeur par défaut :
80
json.formatter.trailingCommas
Section titled json.formatter.trailingCommasAjoute si possible des virgules de fin dans les structures syntaxiques séparées par des virgules et réparties sur plusieurs lignes.
Valeurs possibles :
"none"
: la virgule de fin est supprimée ;"all"
: la virgule de fin est préservée et préférée.
Valeur par défaut :
"none"
json.linter.enabled
Section titled json.linter.enabledActive l’outil de linting de Biome pour les fichiers JSON (et ses super-langages).
Valeur par défaut :
true
Options appliquées aux fichiers CSS.
css.parser.cssModules
Section titled css.parser.cssModulesActive l’analyse des modules CSS.
Valeur par défaut :
false
css.formatter.enabled
Section titled css.formatter.enabledActive l’outil de formatage de Biome pour les fichiers CSS (et ses super-langages).
Valeur par défaut :
false
css.formatter.indentStyle
Section titled css.formatter.indentStyleLe style d’indentation pour les fichiers CSS (et ses super-langages). La valeur peut être "tab"
ou "space"
.
Valeur par défaut :
"tab"
css.formatter.indentWidth
Section titled css.formatter.indentWidthQuelle devrait être la largeur de l’indentation pour les fichiers CSS (et ses super-langages).
Valeur par défaut :
2
css.formatter.lineEnding
Section titled css.formatter.lineEndingLe type de fin de ligne pour les fichiers CSS (et ses super-langages).
"lf"
: caractère de retour à la ligne seulement (\n
), courant sur Linux et macOS, ainsi que dans les dépôts git ;"crlf"
: caractère de retour chariot + caractère de retour à la ligne (\r\n
), courant sur Windows ;"cr"
: caractère de retour chariot seulement (\r
), très rarement utilisé.
Valeur par défaut :
"lf"
css.formatter.lineWidth
Section titled css.formatter.lineWidthCombien de caractères peuvent être écrits sur une seule ligne dans les fichiers CSS (et ses super-langages).
Valeur par défaut :
80
css.formatter.quoteStyle
Section titled css.formatter.quoteStyleLe type de guillemets utilisé pour représenter les littéraux de chaîne. La valeur peut être "single"
ou "double"
.
Valeur par défaut :
"double"
css.linter.enabled
Section titled css.linter.enabledActive l’outil de linting de Biome pour les fichiers CSS (et ses super-langages).
Valeur par défaut :
false
overrides
Section titled overridesUne liste de modèles.
Utilisez cette configuration pour modifier le comportement des outils pour certains fichiers.
Quand un fichier correspond à un modèle d’écrasement, la configuration spécifiée dans ce modèle écrasera la configuration du premier niveau.
L’ordre des modèles a son importance. Si un fichier peut correspondre à trois modèles, seul le premier est utilisé.
overrides.<ITEM>.ignore
Section titled overrides.<ITEM>.ignoreUne liste de modèles de style de shell Unix. Biome ne fera pas appliquer l’écrasement aux fichiers correspondant au modèle.
{ "overrides": [{ "ignore": ["scripts/*.js"] }]}
overrides.<ITEM>.include
Section titled overrides.<ITEM>.includeUne liste de modèles de style de shell Unix. Biome ne fera appliquer l’écrasement qu’aux fichiers correspondant au modèle.
{ "overrides": [{ "include": ["scripts/*.js"] }]}
overrides.<ITEM>.formatter
Section titled overrides.<ITEM>.formatterInclura les options de configuration de formatage du premier niveau, moins ignore
et include
.
Exemples
Section titled ExemplesPar exemple, il est possible de modifier le formatage de lineWidth
: indentStyle
pour certains fichiers qui sont inclus dans le glob generated/**
:
{ "formatter": { "lineWidth": 100 }, "overrides": [ { "include": ["generated/**"], "formatter": { "lineWidth": 160, "indentStyle": "space" } } ]}
overrides.<ITEM>.linter
Section titled overrides.<ITEM>.linterInclura les options de configuration de linting de premier niveau, moins ignore
et include
.
Exemples
Section titled ExemplesVous pouvez désactiver certaines règles pour certains globs et désactiver le linting pour d’autres globs :
{ "linter": { "enabled": true, "rules": { "recommended": true } }, "overrides": [ { "include": ["lib/**"], "linter": { "rules": { "suspicious": { "noDebugger": "off" } } } }, { "include": ["shims/**"], "linter": { "enabled": false } } ]}
overrides.<ITEM>.organizeImports
Section titled overrides.<ITEM>.organizeImportsInclura les options d’organisation des imports de premier niveau, moins ignore
et include
.
overrides.<ITEM>.javascript
Section titled overrides.<ITEM>.javascriptInclura les options de configuration de JavaScript de premier niveau.
Exemples
Section titled ExemplesVous pouvez modifier le comportement du formatage des fichiers JavaScript dans certains dossiers :
{ "formatter": { "lineWidth": 120 }, "javascript": { "formatter": { "quoteStyle": "single" } }, "overrides": [ { "include": ["lib/**"], "javascript": { "formatter": { "quoteStyle": "double" } } } ]}
overrides.<ITEM>.json
Section titled overrides.<ITEM>.jsonInclura les options de configuration de JSON de premier niveau.
Exemples
Section titled ExemplesVous pouvez activer les fonctionnalités d’analyse pour certains fichiers JSON :
{ "linter": { "enabled": true, "rules": { "recommended": true } }, "overrides": [ { "include": [".vscode/**"], "json": { "parser": { "allowComments": true, "allowTrailingCommas": true } } } ]}