{ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "Configuration", "description": "The configuration that is contained inside the file `biome.json`", "type": "object", "properties": { "$schema": { "description": "A field for the [JSON schema](https://json-schema.org/) specification", "anyOf": [{ "$ref": "#/$defs/Schema" }, { "type": "null" }] }, "assist": { "description": "Specific configuration for assists", "anyOf": [{ "$ref": "#/$defs/AssistConfiguration" }, { "type": "null" }] }, "css": { "description": "Specific configuration for the Css language", "anyOf": [{ "$ref": "#/$defs/CssConfiguration" }, { "type": "null" }] }, "extends": { "description": "A list of paths to other JSON files, used to extends the current configuration.", "anyOf": [{ "$ref": "#/$defs/Extends" }, { "type": "null" }] }, "files": { "description": "The configuration of the filesystem", "anyOf": [{ "$ref": "#/$defs/FilesConfiguration" }, { "type": "null" }] }, "formatter": { "description": "The configuration of the formatter", "anyOf": [ { "$ref": "#/$defs/FormatterConfiguration" }, { "type": "null" } ] }, "graphql": { "description": "Specific configuration for the GraphQL language", "anyOf": [{ "$ref": "#/$defs/GraphqlConfiguration" }, { "type": "null" }] }, "grit": { "description": "Specific configuration for the GraphQL language", "anyOf": [{ "$ref": "#/$defs/GritConfiguration" }, { "type": "null" }] }, "html": { "description": "Specific configuration for the HTML language", "anyOf": [{ "$ref": "#/$defs/HtmlConfiguration" }, { "type": "null" }] }, "javascript": { "description": "Specific configuration for the JavaScript language", "anyOf": [{ "$ref": "#/$defs/JsConfiguration" }, { "type": "null" }] }, "json": { "description": "Specific configuration for the Json language", "anyOf": [{ "$ref": "#/$defs/JsonConfiguration" }, { "type": "null" }] }, "linter": { "description": "The configuration for the linter", "anyOf": [{ "$ref": "#/$defs/LinterConfiguration" }, { "type": "null" }] }, "overrides": { "description": "A list of granular patterns that should be applied only to a sub set of files", "anyOf": [{ "$ref": "#/$defs/Overrides" }, { "type": "null" }] }, "plugins": { "description": "List of plugins to load.", "anyOf": [{ "$ref": "#/$defs/Plugins" }, { "type": "null" }] }, "root": { "description": "Indicates whether this configuration file is at the root of a Biome\nproject. By default, this is `true`.", "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }] }, "vcs": { "description": "The configuration of the VCS integration", "anyOf": [{ "$ref": "#/$defs/VcsConfiguration" }, { "type": "null" }] } }, "additionalProperties": false, "$defs": { "A11y": { "description": "A list of rules that belong to this group", "type": "object", "properties": { "noAccessKey": { "description": "Enforce that the accessKey attribute is not used on any HTML element.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoAccessKeyConfiguration" }, { "type": "null" } ] }, "noAriaHiddenOnFocusable": { "description": "Enforce that aria-hidden=\"true\" is not set on focusable elements.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoAriaHiddenOnFocusableConfiguration" }, { "type": "null" } ] }, "noAriaUnsupportedElements": { "description": "Enforce that elements that do not support ARIA roles, states, and properties do not have those attributes.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoAriaUnsupportedElementsConfiguration" }, { "type": "null" } ] }, "noAutofocus": { "description": "Enforce that autoFocus prop is not used on elements.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoAutofocusConfiguration" }, { "type": "null" } ] }, "noDistractingElements": { "description": "Enforces that no distracting elements are used.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoDistractingElementsConfiguration" }, { "type": "null" } ] }, "noHeaderScope": { "description": "The scope prop should be used only on \\ elements.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoHeaderScopeConfiguration" }, { "type": "null" } ] }, "noInteractiveElementToNoninteractiveRole": { "description": "Enforce that non-interactive ARIA roles are not assigned to interactive HTML elements.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoInteractiveElementToNoninteractiveRoleConfiguration" }, { "type": "null" } ] }, "noLabelWithoutControl": { "description": "Enforce that a label element or component has a text label and an associated input.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoLabelWithoutControlConfiguration" }, { "type": "null" } ] }, "noNoninteractiveElementInteractions": { "description": "Disallow use event handlers on non-interactive elements.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoNoninteractiveElementInteractionsConfiguration" }, { "type": "null" } ] }, "noNoninteractiveElementToInteractiveRole": { "description": "Enforce that interactive ARIA roles are not assigned to non-interactive HTML elements.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoNoninteractiveElementToInteractiveRoleConfiguration" }, { "type": "null" } ] }, "noNoninteractiveTabindex": { "description": "Enforce that tabIndex is not assigned to non-interactive HTML elements.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoNoninteractiveTabindexConfiguration" }, { "type": "null" } ] }, "noPositiveTabindex": { "description": "Prevent the usage of positive integers on tabIndex property.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoPositiveTabindexConfiguration" }, { "type": "null" } ] }, "noRedundantAlt": { "description": "Enforce img alt prop does not contain the word \"image\", \"picture\", or \"photo\".\nSee ", "anyOf": [ { "$ref": "#/$defs/NoRedundantAltConfiguration" }, { "type": "null" } ] }, "noRedundantRoles": { "description": "Enforce explicit role property is not the same as implicit/default role property on an element.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoRedundantRolesConfiguration" }, { "type": "null" } ] }, "noStaticElementInteractions": { "description": "Enforce that static, visible elements (such as \\
) that have click handlers use the valid role attribute.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoStaticElementInteractionsConfiguration" }, { "type": "null" } ] }, "noSvgWithoutTitle": { "description": "Enforces the usage of the title element for the svg element.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoSvgWithoutTitleConfiguration" }, { "type": "null" } ] }, "recommended": { "description": "Enables the recommended rules for this group", "type": ["boolean", "null"] }, "useAltText": { "description": "Enforce that all elements that require alternative text have meaningful information to relay back to the end user.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseAltTextConfiguration" }, { "type": "null" } ] }, "useAnchorContent": { "description": "Enforce that anchors have content and that the content is accessible to screen readers.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseAnchorContentConfiguration" }, { "type": "null" } ] }, "useAriaActivedescendantWithTabindex": { "description": "Enforce that tabIndex is assigned to non-interactive HTML elements with aria-activedescendant.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseAriaActivedescendantWithTabindexConfiguration" }, { "type": "null" } ] }, "useAriaPropsForRole": { "description": "Enforce that elements with ARIA roles must have all required ARIA attributes for that role.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseAriaPropsForRoleConfiguration" }, { "type": "null" } ] }, "useAriaPropsSupportedByRole": { "description": "Enforce that ARIA properties are valid for the roles that are supported by the element.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseAriaPropsSupportedByRoleConfiguration" }, { "type": "null" } ] }, "useButtonType": { "description": "Enforces the usage of the attribute type for the element button.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseButtonTypeConfiguration" }, { "type": "null" } ] }, "useFocusableInteractive": { "description": "Elements with an interactive role and interaction handlers must be focusable.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseFocusableInteractiveConfiguration" }, { "type": "null" } ] }, "useGenericFontNames": { "description": "Disallow a missing generic family keyword within font families.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseGenericFontNamesConfiguration" }, { "type": "null" } ] }, "useHeadingContent": { "description": "Enforce that heading elements (h1, h2, etc.) have content and that the content is accessible to screen readers. Accessible means that it is not hidden using the aria-hidden prop.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseHeadingContentConfiguration" }, { "type": "null" } ] }, "useHtmlLang": { "description": "Enforce that html element has lang attribute.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseHtmlLangConfiguration" }, { "type": "null" } ] }, "useIframeTitle": { "description": "Enforces the usage of the attribute title for the element iframe.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseIframeTitleConfiguration" }, { "type": "null" } ] }, "useKeyWithClickEvents": { "description": "Enforce onClick is accompanied by at least one of the following: onKeyUp, onKeyDown, onKeyPress.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseKeyWithClickEventsConfiguration" }, { "type": "null" } ] }, "useKeyWithMouseEvents": { "description": "Enforce onMouseOver / onMouseOut are accompanied by onFocus / onBlur.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseKeyWithMouseEventsConfiguration" }, { "type": "null" } ] }, "useMediaCaption": { "description": "Enforces that audio and video elements must have a track for captions.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseMediaCaptionConfiguration" }, { "type": "null" } ] }, "useSemanticElements": { "description": "It detects the use of role attributes in JSX elements and suggests using semantic elements instead.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseSemanticElementsConfiguration" }, { "type": "null" } ] }, "useValidAnchor": { "description": "Enforce that all anchors are valid, and they are navigable elements.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseValidAnchorConfiguration" }, { "type": "null" } ] }, "useValidAriaProps": { "description": "Ensures that ARIA properties aria-* are all valid.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseValidAriaPropsConfiguration" }, { "type": "null" } ] }, "useValidAriaRole": { "description": "Elements with ARIA roles must use a valid, non-abstract ARIA role.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseValidAriaRoleConfiguration" }, { "type": "null" } ] }, "useValidAriaValues": { "description": "Enforce that ARIA state and property values are valid.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseValidAriaValuesConfiguration" }, { "type": "null" } ] }, "useValidAutocomplete": { "description": "Use valid values for the autocomplete attribute on input elements.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseValidAutocompleteConfiguration" }, { "type": "null" } ] }, "useValidLang": { "description": "Ensure that the attribute passed to the lang attribute is a correct ISO language and/or country.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseValidLangConfiguration" }, { "type": "null" } ] } }, "additionalProperties": false }, "Accessibility": { "type": "string", "enum": ["noPublic", "explicit", "none"] }, "Actions": { "type": "object", "properties": { "recommended": { "description": "It enables the assist actions recommended by Biome. `true` by default.", "type": ["boolean", "null"] }, "source": { "anyOf": [{ "$ref": "#/$defs/Source" }, { "type": "null" }] } }, "additionalProperties": false }, "ArrowParentheses": { "type": "string", "enum": ["always", "asNeeded"] }, "AssistConfiguration": { "type": "object", "properties": { "actions": { "description": "Whether Biome should fail in CLI if the assist were not applied to the code.", "anyOf": [{ "$ref": "#/$defs/Actions" }, { "type": "null" }] }, "enabled": { "description": "Whether Biome should enable assist via LSP and CLI.", "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }] }, "includes": { "description": "A list of glob patterns. Biome will include files/folders that will\nmatch these patterns.", "type": ["array", "null"], "items": { "$ref": "#/$defs/NormalizedGlob" } } }, "additionalProperties": false }, "AttributePosition": { "type": "string", "enum": ["auto", "multiline"] }, "Bool": { "type": "boolean" }, "BracketSameLine": { "description": "Put the `>` of a multi-line HTML or JSX element at the end of the last line instead of being alone on the next line (does not apply to self closing elements).", "type": "boolean" }, "BracketSpacing": { "type": "boolean" }, "Complexity": { "description": "A list of rules that belong to this group", "type": "object", "properties": { "noAdjacentSpacesInRegex": { "description": "Disallow unclear usage of consecutive space characters in regular expression literals.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoAdjacentSpacesInRegexConfiguration" }, { "type": "null" } ] }, "noArguments": { "description": "Disallow the use of arguments.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoArgumentsConfiguration" }, { "type": "null" } ] }, "noBannedTypes": { "description": "Disallow primitive type aliases and misleading types.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoBannedTypesConfiguration" }, { "type": "null" } ] }, "noCommaOperator": { "description": "Disallow comma operator.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoCommaOperatorConfiguration" }, { "type": "null" } ] }, "noEmptyTypeParameters": { "description": "Disallow empty type parameters in type aliases and interfaces.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoEmptyTypeParametersConfiguration" }, { "type": "null" } ] }, "noExcessiveCognitiveComplexity": { "description": "Disallow functions that exceed a given Cognitive Complexity score.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoExcessiveCognitiveComplexityConfiguration" }, { "type": "null" } ] }, "noExcessiveLinesPerFunction": { "description": "Restrict the number of lines of code in a function.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoExcessiveLinesPerFunctionConfiguration" }, { "type": "null" } ] }, "noExcessiveNestedTestSuites": { "description": "This rule enforces a maximum depth to nested describe() in test files.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoExcessiveNestedTestSuitesConfiguration" }, { "type": "null" } ] }, "noExtraBooleanCast": { "description": "Disallow unnecessary boolean casts.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoExtraBooleanCastConfiguration" }, { "type": "null" } ] }, "noFlatMapIdentity": { "description": "Disallow to use unnecessary callback on flatMap.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoFlatMapIdentityConfiguration" }, { "type": "null" } ] }, "noForEach": { "description": "Prefer for...of statement instead of Array.forEach.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoForEachConfiguration" }, { "type": "null" } ] }, "noImplicitCoercions": { "description": "Disallow shorthand type conversions.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoImplicitCoercionsConfiguration" }, { "type": "null" } ] }, "noImportantStyles": { "description": "Disallow the use of the !important style.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoImportantStylesConfiguration" }, { "type": "null" } ] }, "noStaticOnlyClass": { "description": "This rule reports when a class has no non-static members, such as for a class used exclusively as a static namespace.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoStaticOnlyClassConfiguration" }, { "type": "null" } ] }, "noThisInStatic": { "description": "Disallow this and super in static contexts.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoThisInStaticConfiguration" }, { "type": "null" } ] }, "noUselessCatch": { "description": "Disallow unnecessary catch clauses.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUselessCatchConfiguration" }, { "type": "null" } ] }, "noUselessConstructor": { "description": "Disallow unnecessary constructors.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUselessConstructorConfiguration" }, { "type": "null" } ] }, "noUselessContinue": { "description": "Avoid using unnecessary continue.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUselessContinueConfiguration" }, { "type": "null" } ] }, "noUselessEmptyExport": { "description": "Disallow empty exports that don't change anything in a module file.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUselessEmptyExportConfiguration" }, { "type": "null" } ] }, "noUselessEscapeInRegex": { "description": "Disallow unnecessary escape sequence in regular expression literals.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUselessEscapeInRegexConfiguration" }, { "type": "null" } ] }, "noUselessFragments": { "description": "Disallow unnecessary fragments.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUselessFragmentsConfiguration" }, { "type": "null" } ] }, "noUselessLabel": { "description": "Disallow unnecessary labels.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUselessLabelConfiguration" }, { "type": "null" } ] }, "noUselessLoneBlockStatements": { "description": "Disallow unnecessary nested block statements.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUselessLoneBlockStatementsConfiguration" }, { "type": "null" } ] }, "noUselessRename": { "description": "Disallow renaming import, export, and destructured assignments to the same name.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUselessRenameConfiguration" }, { "type": "null" } ] }, "noUselessStringConcat": { "description": "Disallow unnecessary concatenation of string or template literals.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUselessStringConcatConfiguration" }, { "type": "null" } ] }, "noUselessStringRaw": { "description": "Disallow unnecessary String.raw function in template string literals without any escape sequence.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUselessStringRawConfiguration" }, { "type": "null" } ] }, "noUselessSwitchCase": { "description": "Disallow useless case in switch statements.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUselessSwitchCaseConfiguration" }, { "type": "null" } ] }, "noUselessTernary": { "description": "Disallow ternary operators when simpler alternatives exist.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUselessTernaryConfiguration" }, { "type": "null" } ] }, "noUselessThisAlias": { "description": "Disallow useless this aliasing.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUselessThisAliasConfiguration" }, { "type": "null" } ] }, "noUselessTypeConstraint": { "description": "Disallow using any or unknown as type constraint.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUselessTypeConstraintConfiguration" }, { "type": "null" } ] }, "noUselessUndefinedInitialization": { "description": "Disallow initializing variables to undefined.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUselessUndefinedInitializationConfiguration" }, { "type": "null" } ] }, "noVoid": { "description": "Disallow the use of void operators, which is not a familiar operator.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoVoidConfiguration" }, { "type": "null" } ] }, "recommended": { "description": "Enables the recommended rules for this group", "type": ["boolean", "null"] }, "useArrowFunction": { "description": "Use arrow functions over function expressions.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseArrowFunctionConfiguration" }, { "type": "null" } ] }, "useDateNow": { "description": "Use Date.now() to get the number of milliseconds since the Unix Epoch.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseDateNowConfiguration" }, { "type": "null" } ] }, "useFlatMap": { "description": "Promotes the use of .flatMap() when map().flat() are used together.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseFlatMapConfiguration" }, { "type": "null" } ] }, "useIndexOf": { "description": "Prefer Array#{indexOf,lastIndexOf}() over Array#{findIndex,findLastIndex}() when looking for the index of an item.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseIndexOfConfiguration" }, { "type": "null" } ] }, "useLiteralKeys": { "description": "Enforce the usage of a literal access to properties over computed property access.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseLiteralKeysConfiguration" }, { "type": "null" } ] }, "useNumericLiterals": { "description": "Disallow parseInt() and Number.parseInt() in favor of binary, octal, and hexadecimal literals.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseNumericLiteralsConfiguration" }, { "type": "null" } ] }, "useOptionalChain": { "description": "Enforce using concise optional chain instead of chained logical expressions.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseOptionalChainConfiguration" }, { "type": "null" } ] }, "useRegexLiterals": { "description": "Enforce the use of the regular expression literals instead of the RegExp constructor if possible.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseRegexLiteralsConfiguration" }, { "type": "null" } ] }, "useSimpleNumberKeys": { "description": "Disallow number literal object member names which are not base 10 or use underscore as separator.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseSimpleNumberKeysConfiguration" }, { "type": "null" } ] }, "useSimplifiedLogicExpression": { "description": "Discard redundant terms from logical expressions.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseSimplifiedLogicExpressionConfiguration" }, { "type": "null" } ] }, "useWhile": { "description": "Enforce the use of while loops instead of for loops when the initializer and update expressions are not needed.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseWhileConfiguration" }, { "type": "null" } ] } }, "additionalProperties": false }, "ConsistentArrayType": { "oneOf": [ { "description": "`ItemType[]`", "type": "string", "const": "shorthand" }, { "description": "`Array`", "type": "string", "const": "generic" } ] }, "ConsistentTypeDefinition": { "oneOf": [ { "description": "Prefer using `interface` for object type definitions", "type": "string", "const": "interface" }, { "description": "Prefer using `type` for object type definitions", "type": "string", "const": "type" } ] }, "Convention": { "type": "object", "properties": { "formats": { "description": "String cases to enforce", "$ref": "#/$defs/Formats" }, "match": { "description": "Regular expression to enforce", "anyOf": [{ "$ref": "#/$defs/Regex" }, { "type": "null" }] }, "selector": { "description": "Declarations concerned by this convention", "$ref": "#/$defs/Selector" } }, "additionalProperties": false }, "Correctness": { "description": "A list of rules that belong to this group", "type": "object", "properties": { "noChildrenProp": { "description": "Prevent passing of children as props.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoChildrenPropConfiguration" }, { "type": "null" } ] }, "noConstAssign": { "description": "Prevents from having const variables being re-assigned.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoConstAssignConfiguration" }, { "type": "null" } ] }, "noConstantCondition": { "description": "Disallow constant expressions in conditions.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoConstantConditionConfiguration" }, { "type": "null" } ] }, "noConstantMathMinMaxClamp": { "description": "Disallow the use of Math.min and Math.max to clamp a value where the result itself is constant.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoConstantMathMinMaxClampConfiguration" }, { "type": "null" } ] }, "noConstructorReturn": { "description": "Disallow returning a value from a constructor.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoConstructorReturnConfiguration" }, { "type": "null" } ] }, "noEmptyCharacterClassInRegex": { "description": "Disallow empty character classes in regular expression literals.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoEmptyCharacterClassInRegexConfiguration" }, { "type": "null" } ] }, "noEmptyPattern": { "description": "Disallows empty destructuring patterns.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoEmptyPatternConfiguration" }, { "type": "null" } ] }, "noGlobalDirnameFilename": { "description": "Disallow the use of __dirname and __filename in the global scope.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoGlobalDirnameFilenameConfiguration" }, { "type": "null" } ] }, "noGlobalObjectCalls": { "description": "Disallow calling global object properties as functions.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoGlobalObjectCallsConfiguration" }, { "type": "null" } ] }, "noInnerDeclarations": { "description": "Disallow function and var declarations that are accessible outside their block.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoInnerDeclarationsConfiguration" }, { "type": "null" } ] }, "noInvalidBuiltinInstantiation": { "description": "Ensure that builtins are correctly instantiated.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoInvalidBuiltinInstantiationConfiguration" }, { "type": "null" } ] }, "noInvalidConstructorSuper": { "description": "Prevents the incorrect use of super() inside classes. It also checks whether a call super() is missing from classes that extends other constructors.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoInvalidConstructorSuperConfiguration" }, { "type": "null" } ] }, "noInvalidDirectionInLinearGradient": { "description": "Disallow non-standard direction values for linear gradient functions.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoInvalidDirectionInLinearGradientConfiguration" }, { "type": "null" } ] }, "noInvalidGridAreas": { "description": "Disallows invalid named grid areas in CSS Grid Layouts.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoInvalidGridAreasConfiguration" }, { "type": "null" } ] }, "noInvalidPositionAtImportRule": { "description": "Disallow the use of @import at-rules in invalid positions.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoInvalidPositionAtImportRuleConfiguration" }, { "type": "null" } ] }, "noInvalidUseBeforeDeclaration": { "description": "Disallow the use of variables, function parameters, classes, and enums before their declaration.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoInvalidUseBeforeDeclarationConfiguration" }, { "type": "null" } ] }, "noMissingVarFunction": { "description": "Disallow missing var function for css variables.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoMissingVarFunctionConfiguration" }, { "type": "null" } ] }, "noNestedComponentDefinitions": { "description": "Disallows defining React components inside other components.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoNestedComponentDefinitionsConfiguration" }, { "type": "null" } ] }, "noNodejsModules": { "description": "Forbid the use of Node.js builtin modules.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoNodejsModulesConfiguration" }, { "type": "null" } ] }, "noNonoctalDecimalEscape": { "description": "Disallow \\8 and \\9 escape sequences in string literals.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoNonoctalDecimalEscapeConfiguration" }, { "type": "null" } ] }, "noPrecisionLoss": { "description": "Disallow literal numbers that lose precision.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoPrecisionLossConfiguration" }, { "type": "null" } ] }, "noPrivateImports": { "description": "Restrict imports of private exports.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoPrivateImportsConfiguration" }, { "type": "null" } ] }, "noProcessGlobal": { "description": "Disallow the use of process global.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoProcessGlobalConfiguration" }, { "type": "null" } ] }, "noQwikUseVisibleTask": { "description": "Disallow useVisibleTask$() functions in Qwik components.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoQwikUseVisibleTaskConfiguration" }, { "type": "null" } ] }, "noReactPropAssignments": { "description": "Disallow assigning to React component props.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoReactPropAssignmentsConfiguration" }, { "type": "null" } ] }, "noRenderReturnValue": { "description": "Prevent the usage of the return value of React.render.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoRenderReturnValueConfiguration" }, { "type": "null" } ] }, "noRestrictedElements": { "description": "Disallow the use of configured elements.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoRestrictedElementsConfiguration" }, { "type": "null" } ] }, "noSelfAssign": { "description": "Disallow assignments where both sides are exactly the same.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoSelfAssignConfiguration" }, { "type": "null" } ] }, "noSetterReturn": { "description": "Disallow returning a value from a setter.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoSetterReturnConfiguration" }, { "type": "null" } ] }, "noSolidDestructuredProps": { "description": "Disallow destructuring props inside JSX components in Solid projects.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoSolidDestructuredPropsConfiguration" }, { "type": "null" } ] }, "noStringCaseMismatch": { "description": "Disallow comparison of expressions modifying the string case with non-compliant value.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoStringCaseMismatchConfiguration" }, { "type": "null" } ] }, "noSwitchDeclarations": { "description": "Disallow lexical declarations in switch clauses.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoSwitchDeclarationsConfiguration" }, { "type": "null" } ] }, "noUndeclaredDependencies": { "description": "Disallow the use of dependencies that aren't specified in the package.json.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUndeclaredDependenciesConfiguration" }, { "type": "null" } ] }, "noUndeclaredVariables": { "description": "Prevents the usage of variables that haven't been declared inside the document.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUndeclaredVariablesConfiguration" }, { "type": "null" } ] }, "noUnknownFunction": { "description": "Disallow unknown CSS value functions.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUnknownFunctionConfiguration" }, { "type": "null" } ] }, "noUnknownMediaFeatureName": { "description": "Disallow unknown media feature names.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUnknownMediaFeatureNameConfiguration" }, { "type": "null" } ] }, "noUnknownProperty": { "description": "Disallow unknown properties.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUnknownPropertyConfiguration" }, { "type": "null" } ] }, "noUnknownPseudoClass": { "description": "Disallow unknown pseudo-class selectors.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUnknownPseudoClassConfiguration" }, { "type": "null" } ] }, "noUnknownPseudoElement": { "description": "Disallow unknown pseudo-element selectors.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUnknownPseudoElementConfiguration" }, { "type": "null" } ] }, "noUnknownTypeSelector": { "description": "Disallow unknown type selectors.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUnknownTypeSelectorConfiguration" }, { "type": "null" } ] }, "noUnknownUnit": { "description": "Disallow unknown CSS units.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUnknownUnitConfiguration" }, { "type": "null" } ] }, "noUnmatchableAnbSelector": { "description": "Disallow unmatchable An+B selectors.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUnmatchableAnbSelectorConfiguration" }, { "type": "null" } ] }, "noUnreachable": { "description": "Disallow unreachable code.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUnreachableConfiguration" }, { "type": "null" } ] }, "noUnreachableSuper": { "description": "Ensures the super() constructor is called exactly once on every code path in a class constructor before this is accessed if the class has a superclass.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUnreachableSuperConfiguration" }, { "type": "null" } ] }, "noUnsafeFinally": { "description": "Disallow control flow statements in finally blocks.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUnsafeFinallyConfiguration" }, { "type": "null" } ] }, "noUnsafeOptionalChaining": { "description": "Disallow the use of optional chaining in contexts where the undefined value is not allowed.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUnsafeOptionalChainingConfiguration" }, { "type": "null" } ] }, "noUnusedFunctionParameters": { "description": "Disallow unused function parameters.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUnusedFunctionParametersConfiguration" }, { "type": "null" } ] }, "noUnusedImports": { "description": "Disallow unused imports.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUnusedImportsConfiguration" }, { "type": "null" } ] }, "noUnusedLabels": { "description": "Disallow unused labels.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUnusedLabelsConfiguration" }, { "type": "null" } ] }, "noUnusedPrivateClassMembers": { "description": "Disallow unused private class members.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUnusedPrivateClassMembersConfiguration" }, { "type": "null" } ] }, "noUnusedVariables": { "description": "Disallow unused variables.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoUnusedVariablesConfiguration" }, { "type": "null" } ] }, "noVoidElementsWithChildren": { "description": "This rules prevents void elements (AKA self-closing elements) from having children.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoVoidElementsWithChildrenConfiguration" }, { "type": "null" } ] }, "noVoidTypeReturn": { "description": "Disallow returning a value from a function with the return type 'void'.\nSee ", "anyOf": [ { "$ref": "#/$defs/NoVoidTypeReturnConfiguration" }, { "type": "null" } ] }, "recommended": { "description": "Enables the recommended rules for this group", "type": ["boolean", "null"] }, "useExhaustiveDependencies": { "description": "Enforce correct dependency usage within React hooks.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseExhaustiveDependenciesConfiguration" }, { "type": "null" } ] }, "useGraphqlNamedOperations": { "description": "Enforce specifying the name of GraphQL operations.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseGraphqlNamedOperationsConfiguration" }, { "type": "null" } ] }, "useHookAtTopLevel": { "description": "Enforce that all React hooks are being called from the Top Level component functions.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseHookAtTopLevelConfiguration" }, { "type": "null" } ] }, "useImageSize": { "description": "Enforces that \\ elements have both width and height attributes.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseImageSizeConfiguration" }, { "type": "null" } ] }, "useImportExtensions": { "description": "Enforce file extensions for relative imports.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseImportExtensionsConfiguration" }, { "type": "null" } ] }, "useIsNan": { "description": "Require calls to isNaN() when checking for NaN.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseIsNanConfiguration" }, { "type": "null" } ] }, "useJsonImportAttributes": { "description": "Enforces the use of with { type: \"json\" } for JSON module imports.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseJsonImportAttributesConfiguration" }, { "type": "null" } ] }, "useJsxKeyInIterable": { "description": "Disallow missing key props in iterators/collection literals.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseJsxKeyInIterableConfiguration" }, { "type": "null" } ] }, "useParseIntRadix": { "description": "Enforce the consistent use of the radix argument when using parseInt().\nSee ", "anyOf": [ { "$ref": "#/$defs/UseParseIntRadixConfiguration" }, { "type": "null" } ] }, "useQwikClasslist": { "description": "Prefer using the class prop as a classlist over the classnames helper.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseQwikClasslistConfiguration" }, { "type": "null" } ] }, "useSingleJsDocAsterisk": { "description": "Enforce JSDoc comment lines to start with a single asterisk, except for the first one.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseSingleJsDocAsteriskConfiguration" }, { "type": "null" } ] }, "useUniqueElementIds": { "description": "Prevent the usage of static string literal id attribute on elements.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseUniqueElementIdsConfiguration" }, { "type": "null" } ] }, "useValidForDirection": { "description": "Enforce \"for\" loop update clause moving the counter in the right direction.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseValidForDirectionConfiguration" }, { "type": "null" } ] }, "useValidTypeof": { "description": "This rule checks that the result of a typeof expression is compared to a valid value.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseValidTypeofConfiguration" }, { "type": "null" } ] }, "useYield": { "description": "Require generator functions to contain yield.\nSee ", "anyOf": [ { "$ref": "#/$defs/UseYieldConfiguration" }, { "type": "null" } ] } }, "additionalProperties": false }, "CssAssistConfiguration": { "description": "Options that changes how the CSS assist behaves", "type": "object", "properties": { "enabled": { "description": "Control the assist for CSS files.", "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }] } }, "additionalProperties": false }, "CssConfiguration": { "description": "Options applied to CSS files", "type": "object", "properties": { "assist": { "description": "CSS assist options", "anyOf": [ { "$ref": "#/$defs/CssAssistConfiguration" }, { "type": "null" } ], "default": null }, "formatter": { "description": "CSS formatter options", "anyOf": [ { "$ref": "#/$defs/CssFormatterConfiguration" }, { "type": "null" } ], "default": null }, "globals": { "description": "CSS globals", "type": ["array", "null"], "items": { "type": "string" }, "uniqueItems": true }, "linter": { "description": "CSS linter options", "anyOf": [ { "$ref": "#/$defs/CssLinterConfiguration" }, { "type": "null" } ], "default": null }, "parser": { "description": "CSS parsing options", "anyOf": [ { "$ref": "#/$defs/CssParserConfiguration" }, { "type": "null" } ], "default": null } }, "additionalProperties": false }, "CssFormatterConfiguration": { "description": "Options that changes how the CSS formatter behaves", "type": "object", "properties": { "enabled": { "description": "Control the formatter for CSS (and its super languages) files.", "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }] }, "indentStyle": { "description": "The indent style applied to CSS (and its super languages) files.", "anyOf": [{ "$ref": "#/$defs/IndentStyle" }, { "type": "null" }] }, "indentWidth": { "description": "The size of the indentation applied to CSS (and its super languages) files. Default to 2.", "anyOf": [{ "$ref": "#/$defs/IndentWidth" }, { "type": "null" }] }, "lineEnding": { "description": "The type of line ending applied to CSS (and its super languages) files. `auto` uses CRLF on Windows and LF on other platforms.", "anyOf": [{ "$ref": "#/$defs/LineEnding" }, { "type": "null" }] }, "lineWidth": { "description": "What's the max width of a line applied to CSS (and its super languages) files. Defaults to 80.", "anyOf": [{ "$ref": "#/$defs/LineWidth" }, { "type": "null" }] }, "quoteStyle": { "description": "The type of quotes used in CSS code. Defaults to double.", "anyOf": [{ "$ref": "#/$defs/QuoteStyle" }, { "type": "null" }] } }, "additionalProperties": false }, "CssLinterConfiguration": { "description": "Options that changes how the CSS linter behaves", "type": "object", "properties": { "enabled": { "description": "Control the linter for CSS files.", "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }] } }, "additionalProperties": false }, "CssParserConfiguration": { "description": "Options that changes how the CSS parser behaves", "type": "object", "properties": { "allowWrongLineComments": { "description": "Allow comments to appear on incorrect lines in `.css` files", "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }] }, "cssModules": { "description": "Enables parsing of CSS Modules specific features.", "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }] }, "tailwindDirectives": { "description": "Enables parsing of Tailwind CSS 4.0 directives and functions.", "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }], "default": null } }, "additionalProperties": false }, "CustomRestrictedElements": { "description": "Elements to restrict. Each key is the element name, and the value is the message to show when the element is used.", "type": "object", "additionalProperties": { "type": "string" }, "minProperties": 1 }, "CustomRestrictedType": { "anyOf": [ { "type": "string" }, { "$ref": "#/$defs/CustomRestrictedTypeOptions" } ] }, "CustomRestrictedTypeOptions": { "type": "object", "properties": { "message": { "type": "string", "default": "" }, "use": { "type": ["string", "null"], "default": null } }, "additionalProperties": false }, "DeclarationStyle": { "oneOf": [ { "description": "defineProps<{...}>()", "type": "string", "const": "type" }, { "description": "defineProps({...})", "type": "string", "const": "runtime" } ] }, "DependencyAvailability": { "oneOf": [ { "description": "This type of dependency will be always available or unavailable.", "type": "boolean" }, { "description": "This type of dependency will be available only if the linted file matches any of the globs.", "type": "array", "items": { "type": "string" }, "minItems": 1 } ] }, "Expand": { "oneOf": [ { "description": "Objects are expanded when the first property has a leading newline. Arrays are always\nexpanded if they are shorter than the line width.", "type": "string", "const": "auto" }, { "description": "Objects and arrays are always expanded.", "type": "string", "const": "always" }, { "description": "Objects and arrays are never expanded, if they are shorter than the line width.", "type": "string", "const": "never" } ] }, "Extends": { "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "FilenameCase": { "description": "Supported cases for file names.", "oneOf": [ { "description": "camelCase", "type": "string", "const": "camelCase" }, { "description": "Match an export name", "type": "string", "const": "export" }, { "description": "kebab-case", "type": "string", "const": "kebab-case" }, { "description": "PascalCase", "type": "string", "const": "PascalCase" }, { "description": "snake_case", "type": "string", "const": "snake_case" } ] }, "FilenameCases": { "type": "array", "items": { "$ref": "#/$defs/FilenameCase" }, "uniqueItems": true }, "FilesConfiguration": { "description": "The configuration of the filesystem", "type": "object", "properties": { "experimentalScannerIgnores": { "description": "**Deprecated:** Please use _force-ignore syntax_ in `files.includes`\ninstead: \n\nSet of file and folder names that should be unconditionally ignored by\nBiome's scanner.", "type": ["array", "null"], "items": { "type": "string" } }, "ignoreUnknown": { "description": "Tells Biome to not emit diagnostics when handling files that it doesn't know", "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }] }, "includes": { "description": "A list of glob patterns. Biome will handle only those files/folders that will\nmatch these patterns.", "type": ["array", "null"], "items": { "$ref": "#/$defs/NormalizedGlob" } }, "maxSize": { "description": "The maximum allowed size for source code files in bytes. Files above\nthis limit will be ignored for performance reasons. Defaults to 1 MiB", "anyOf": [{ "$ref": "#/$defs/MaxSize" }, { "type": "null" }] } }, "additionalProperties": false }, "FixKind": { "description": "Used to identify the kind of code action emitted by a rule", "oneOf": [ { "description": "The rule doesn't emit code actions.", "type": "string", "const": "none" }, { "description": "The rule emits a code action that is safe to apply. Usually these fixes don't change the semantic of the program.", "type": "string", "const": "safe" }, { "description": "The rule emits a code action that is _unsafe_ to apply. Usually these fixes remove comments, or change\nthe semantic of the program.", "type": "string", "const": "unsafe" } ] }, "Format": { "description": "Supported cases.", "type": "string", "enum": ["camelCase", "CONSTANT_CASE", "PascalCase", "snake_case"] }, "Formats": { "type": "array", "items": { "$ref": "#/$defs/Format" }, "uniqueItems": true }, "FormatterConfiguration": { "description": "Generic options applied to all files", "type": "object", "properties": { "attributePosition": { "description": "The attribute position style in HTML-ish languages. Defaults to auto.", "anyOf": [{ "$ref": "#/$defs/AttributePosition" }, { "type": "null" }] }, "bracketSameLine": { "description": "Put the `>` of a multi-line HTML or JSX element at the end of the last line instead of being alone on the next line (does not apply to self closing elements).", "anyOf": [{ "$ref": "#/$defs/BracketSameLine" }, { "type": "null" }] }, "bracketSpacing": { "description": "Whether to insert spaces around brackets in object literals. Defaults to true.", "anyOf": [{ "$ref": "#/$defs/BracketSpacing" }, { "type": "null" }] }, "enabled": { "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }] }, "expand": { "description": "Whether to expand arrays and objects on multiple lines.\nWhen set to `auto`, object literals are formatted on multiple lines if the first property has a newline,\nand array literals are formatted on a single line if it fits in the line.\nWhen set to `always`, these literals are formatted on multiple lines, regardless of length of the list.\nWhen set to `never`, these literals are formatted on a single line if it fits in the line.\nWhen formatting `package.json`, Biome will use `always` unless configured otherwise. Defaults to \"auto\".", "anyOf": [{ "$ref": "#/$defs/Expand" }, { "type": "null" }] }, "formatWithErrors": { "description": "Whether formatting should be allowed to proceed if a given file\nhas syntax errors", "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }] }, "includes": { "description": "A list of glob patterns. The formatter will include files/folders that will\nmatch these patterns.", "type": ["array", "null"], "items": { "$ref": "#/$defs/NormalizedGlob" } }, "indentStyle": { "description": "The indent style.", "anyOf": [{ "$ref": "#/$defs/IndentStyle" }, { "type": "null" }] }, "indentWidth": { "description": "The size of the indentation, 2 by default", "anyOf": [{ "$ref": "#/$defs/IndentWidth" }, { "type": "null" }] }, "lineEnding": { "description": "The type of line ending.", "anyOf": [{ "$ref": "#/$defs/LineEnding" }, { "type": "null" }] }, "lineWidth": { "description": "What's the max width of a line. Defaults to 80.", "anyOf": [{ "$ref": "#/$defs/LineWidth" }, { "type": "null" }] }, "useEditorconfig": { "description": "Use any `.editorconfig` files to configure the formatter. Configuration\nin `biome.json` will override `.editorconfig` configuration.\n\nDefault: `true`.", "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }] } }, "additionalProperties": false }, "Glob": { "type": "string" }, "GraphqlAssistConfiguration": { "description": "Options that changes how the GraphQL linter behaves", "type": "object", "properties": { "enabled": { "description": "Control the formatter for GraphQL files.", "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }], "default": null } }, "additionalProperties": false }, "GraphqlConfiguration": { "description": "Options applied to GraphQL files", "type": "object", "properties": { "assist": { "description": "Assist options", "anyOf": [ { "$ref": "#/$defs/GraphqlAssistConfiguration" }, { "type": "null" } ] }, "formatter": { "description": "GraphQL formatter options", "anyOf": [ { "$ref": "#/$defs/GraphqlFormatterConfiguration" }, { "type": "null" } ] }, "linter": { "anyOf": [ { "$ref": "#/$defs/GraphqlLinterConfiguration" }, { "type": "null" } ] } }, "additionalProperties": false }, "GraphqlFormatterConfiguration": { "description": "Options that changes how the GraphQL formatter behaves", "type": "object", "properties": { "bracketSpacing": { "description": "Whether to insert spaces around brackets in object literals. Defaults to true.", "anyOf": [{ "$ref": "#/$defs/BracketSpacing" }, { "type": "null" }], "default": null }, "enabled": { "description": "Control the formatter for GraphQL files.", "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }], "default": null }, "indentStyle": { "description": "The indent style applied to GraphQL files.", "anyOf": [{ "$ref": "#/$defs/IndentStyle" }, { "type": "null" }], "default": null }, "indentWidth": { "description": "The size of the indentation applied to GraphQL files. Default to 2.", "anyOf": [{ "$ref": "#/$defs/IndentWidth" }, { "type": "null" }], "default": null }, "lineEnding": { "description": "The type of line ending applied to GraphQL files. `auto` uses CRLF on Windows and LF on other platforms.", "anyOf": [{ "$ref": "#/$defs/LineEnding" }, { "type": "null" }], "default": null }, "lineWidth": { "description": "What's the max width of a line applied to GraphQL files. Defaults to 80.", "anyOf": [{ "$ref": "#/$defs/LineWidth" }, { "type": "null" }], "default": null }, "quoteStyle": { "description": "The type of quotes used in GraphQL code. Defaults to double.", "anyOf": [{ "$ref": "#/$defs/QuoteStyle" }, { "type": "null" }], "default": null } }, "additionalProperties": false }, "GraphqlLinterConfiguration": { "description": "Options that change how the GraphQL linter behaves.", "type": "object", "properties": { "enabled": { "description": "Control the formatter for GraphQL files.", "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }], "default": null } }, "additionalProperties": false }, "GritAssistConfiguration": { "type": "object", "properties": { "enabled": { "description": "Control the assist functionality for Grit files.", "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }] } }, "additionalProperties": false }, "GritConfiguration": { "description": "Options applied to GritQL files", "type": "object", "properties": { "assist": { "description": "Assist options", "anyOf": [ { "$ref": "#/$defs/GritAssistConfiguration" }, { "type": "null" } ] }, "formatter": { "description": "Formatting options", "anyOf": [ { "$ref": "#/$defs/GritFormatterConfiguration" }, { "type": "null" } ] }, "linter": { "description": "Formatting options", "anyOf": [ { "$ref": "#/$defs/GritLinterConfiguration" }, { "type": "null" } ] } }, "additionalProperties": false }, "GritFormatterConfiguration": { "type": "object", "properties": { "enabled": { "description": "Control the formatter for Grit files.", "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }] }, "indentStyle": { "description": "The indent style applied to Grit files.", "anyOf": [{ "$ref": "#/$defs/IndentStyle" }, { "type": "null" }] }, "indentWidth": { "description": "The size of the indentation applied to Grit files. Default to 2.", "anyOf": [{ "$ref": "#/$defs/IndentWidth" }, { "type": "null" }] }, "lineEnding": { "description": "The type of line ending applied to Grit files.", "anyOf": [{ "$ref": "#/$defs/LineEnding" }, { "type": "null" }] }, "lineWidth": { "description": "What's the max width of a line applied to Grit files. Defaults to 80.", "anyOf": [{ "$ref": "#/$defs/LineWidth" }, { "type": "null" }] } }, "additionalProperties": false }, "GritLinterConfiguration": { "type": "object", "properties": { "enabled": { "description": "Control the linter for Grit files.", "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }] } }, "additionalProperties": false }, "GroupMatcher": { "anyOf": [ { "$ref": "#/$defs/ImportMatcher" }, { "$ref": "#/$defs/SourceMatcher" } ] }, "GroupPlainConfiguration": { "oneOf": [ { "description": "It disables all the rules of this group", "type": "string", "const": "off" }, { "description": "It enables all the rules of this group, with their default severity", "type": "string", "const": "on" }, { "description": "It enables all the rules of this group, and set their severity to \"info\"", "type": "string", "const": "info" }, { "description": "It enables all the rules of this group, and set their severity to \"warn\"", "type": "string", "const": "warn" }, { "description": "It enables all the rules of this group, and set their severity to \"error+\"", "type": "string", "const": "error" } ] }, "Hook": { "type": "object", "properties": { "closureIndex": { "description": "The \"position\" of the closure function, starting from zero.\n\nFor example, for React's `useEffect()` hook, the closure index is 0.", "type": ["integer", "null"], "format": "uint8", "default": null, "maximum": 255, "minimum": 0 }, "dependenciesIndex": { "description": "The \"position\" of the array of dependencies, starting from zero.\n\nFor example, for React's `useEffect()` hook, the dependencies index is 1.", "type": ["integer", "null"], "format": "uint8", "default": null, "maximum": 255, "minimum": 0 }, "name": { "description": "The name of the hook.", "type": "string", "default": "" }, "stableResult": { "description": "Whether the result of the hook is stable.\n\nSet to `true` to mark the identity of the hook's return value as stable,\nor use a number/an array of numbers to mark the \"positions\" in the\nreturn array as stable.\n\nFor example, for React's `useRef()` hook the value would be `true`,\nwhile for `useState()` it would be `[1]`.", "anyOf": [{ "$ref": "#/$defs/StableHookResult" }, { "type": "null" }], "default": null } }, "additionalProperties": false }, "HtmlAssistConfiguration": { "description": "Options that changes how the HTML assist behaves", "type": "object", "properties": { "enabled": { "description": "Control the assist for HTML (and its super languages) files.", "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }] } }, "additionalProperties": false }, "HtmlConfiguration": { "description": "Options applied to HTML files", "type": "object", "properties": { "assist": { "anyOf": [ { "$ref": "#/$defs/HtmlAssistConfiguration" }, { "type": "null" } ] }, "experimentalFullSupportEnabled": { "description": "Enables full support for HTML, Vue, Svelte and Astro files.", "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }] }, "formatter": { "description": "HTML formatter options", "anyOf": [ { "$ref": "#/$defs/HtmlFormatterConfiguration" }, { "type": "null" } ] }, "linter": { "description": "HTML linter options", "anyOf": [ { "$ref": "#/$defs/HtmlLinterConfiguration" }, { "type": "null" } ] }, "parser": { "description": "HTML parsing options", "anyOf": [ { "$ref": "#/$defs/HtmlParserConfiguration" }, { "type": "null" } ] } }, "additionalProperties": false }, "HtmlFormatterConfiguration": { "description": "Options that changes how the HTML formatter behaves", "type": "object", "properties": { "attributePosition": { "description": "The attribute position style in HTML elements. Defaults to auto.", "anyOf": [{ "$ref": "#/$defs/AttributePosition" }, { "type": "null" }] }, "bracketSameLine": { "description": "Whether to hug the closing bracket of multiline HTML tags to the end of the last line, rather than being alone on the following line. Defaults to false.", "anyOf": [{ "$ref": "#/$defs/BracketSameLine" }, { "type": "null" }] }, "enabled": { "description": "Control the formatter for HTML (and its super languages) files.", "anyOf": [{ "$ref": "#/$defs/Bool" }, { "type": "null" }] }, "indentScriptAndStyle": { "description": "Whether to indent the `