UNPKG

blazing-fast-rust

Version:
1,486 lines 431 kB
{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Configuration", "description": "The configuration that is contained inside the file `blazing-fast-rust.json`", "type": "object", "properties": { "$schema": { "description": "A field for the [JSON schema](https://json-schema.org/) specification", "anyOf": [{ "$ref": "#/definitions/Schema" }, { "type": "null" }] }, "assist": { "description": "Specific configuration for assists", "anyOf": [ { "$ref": "#/definitions/AssistConfiguration" }, { "type": "null" } ] }, "css": { "description": "Specific configuration for the Css language", "anyOf": [ { "$ref": "#/definitions/CssConfiguration" }, { "type": "null" } ] }, "extends": { "description": "A list of paths to other JSON files, used to extends the current configuration.", "anyOf": [{ "$ref": "#/definitions/Extends" }, { "type": "null" }] }, "files": { "description": "The configuration of the filesystem", "anyOf": [ { "$ref": "#/definitions/FilesConfiguration" }, { "type": "null" } ] }, "formatter": { "description": "The configuration of the formatter", "anyOf": [ { "$ref": "#/definitions/FormatterConfiguration" }, { "type": "null" } ] }, "graphql": { "description": "Specific configuration for the GraphQL language", "anyOf": [ { "$ref": "#/definitions/GraphqlConfiguration" }, { "type": "null" } ] }, "grit": { "description": "Specific configuration for the GraphQL language", "anyOf": [ { "$ref": "#/definitions/GritConfiguration" }, { "type": "null" } ] }, "html": { "description": "Specific configuration for the HTML language", "anyOf": [ { "$ref": "#/definitions/HtmlConfiguration" }, { "type": "null" } ] }, "javascript": { "description": "Specific configuration for the JavaScript language", "anyOf": [{ "$ref": "#/definitions/JsConfiguration" }, { "type": "null" }] }, "json": { "description": "Specific configuration for the Json language", "anyOf": [ { "$ref": "#/definitions/JsonConfiguration" }, { "type": "null" } ] }, "linter": { "description": "The configuration for the linter", "anyOf": [ { "$ref": "#/definitions/LinterConfiguration" }, { "type": "null" } ] }, "overrides": { "description": "A list of granular patterns that should be applied only to a sub set of files", "anyOf": [{ "$ref": "#/definitions/Overrides" }, { "type": "null" }] }, "plugins": { "description": "List of plugins to load.", "anyOf": [{ "$ref": "#/definitions/Plugins" }, { "type": "null" }] }, "root": { "description": "Indicates whether this configuration file is at the root of a blazing-fast-rust project. By default, this is `true`.", "anyOf": [{ "$ref": "#/definitions/Bool" }, { "type": "null" }] }, "vcs": { "description": "The configuration of the VCS integration", "anyOf": [ { "$ref": "#/definitions/VcsConfiguration" }, { "type": "null" } ] } }, "additionalProperties": false, "definitions": { "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.", "anyOf": [ { "$ref": "#/definitions/NoAccessKeyConfiguration" }, { "type": "null" } ] }, "noAriaHiddenOnFocusable": { "description": "Enforce that aria-hidden=\"true\" is not set on focusable elements.", "anyOf": [ { "$ref": "#/definitions/NoAriaHiddenOnFocusableConfiguration" }, { "type": "null" } ] }, "noAriaUnsupportedElements": { "description": "Enforce that elements that do not support ARIA roles, states, and properties do not have those attributes.", "anyOf": [ { "$ref": "#/definitions/NoAriaUnsupportedElementsConfiguration" }, { "type": "null" } ] }, "noAutofocus": { "description": "Enforce that autoFocus prop is not used on elements.", "anyOf": [ { "$ref": "#/definitions/NoAutofocusConfiguration" }, { "type": "null" } ] }, "noDistractingElements": { "description": "Enforces that no distracting elements are used.", "anyOf": [ { "$ref": "#/definitions/NoDistractingElementsConfiguration" }, { "type": "null" } ] }, "noHeaderScope": { "description": "The scope prop should be used only on \\<th> elements.", "anyOf": [ { "$ref": "#/definitions/NoHeaderScopeConfiguration" }, { "type": "null" } ] }, "noInteractiveElementToNoninteractiveRole": { "description": "Enforce that non-interactive ARIA roles are not assigned to interactive HTML elements.", "anyOf": [ { "$ref": "#/definitions/NoInteractiveElementToNoninteractiveRoleConfiguration" }, { "type": "null" } ] }, "noLabelWithoutControl": { "description": "Enforce that a label element or component has a text label and an associated input.", "anyOf": [ { "$ref": "#/definitions/NoLabelWithoutControlConfiguration" }, { "type": "null" } ] }, "noNoninteractiveElementToInteractiveRole": { "description": "Enforce that interactive ARIA roles are not assigned to non-interactive HTML elements.", "anyOf": [ { "$ref": "#/definitions/NoNoninteractiveElementToInteractiveRoleConfiguration" }, { "type": "null" } ] }, "noNoninteractiveTabindex": { "description": "Enforce that tabIndex is not assigned to non-interactive HTML elements.", "anyOf": [ { "$ref": "#/definitions/NoNoninteractiveTabindexConfiguration" }, { "type": "null" } ] }, "noPositiveTabindex": { "description": "Prevent the usage of positive integers on tabIndex property", "anyOf": [ { "$ref": "#/definitions/NoPositiveTabindexConfiguration" }, { "type": "null" } ] }, "noRedundantAlt": { "description": "Enforce img alt prop does not contain the word \"image\", \"picture\", or \"photo\".", "anyOf": [ { "$ref": "#/definitions/NoRedundantAltConfiguration" }, { "type": "null" } ] }, "noRedundantRoles": { "description": "Enforce explicit role property is not the same as implicit/default role property on an element.", "anyOf": [ { "$ref": "#/definitions/NoRedundantRolesConfiguration" }, { "type": "null" } ] }, "noStaticElementInteractions": { "description": "Enforce that static, visible elements (such as \\<div>) that have click handlers use the valid role attribute.", "anyOf": [ { "$ref": "#/definitions/NoStaticElementInteractionsConfiguration" }, { "type": "null" } ] }, "noSvgWithoutTitle": { "description": "Enforces the usage of the title element for the svg element.", "anyOf": [ { "$ref": "#/definitions/NoSvgWithoutTitleConfiguration" }, { "type": "null" } ] }, "recommended": { "description": "It 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.", "anyOf": [ { "$ref": "#/definitions/UseAltTextConfiguration" }, { "type": "null" } ] }, "useAnchorContent": { "description": "Enforce that anchors have content and that the content is accessible to screen readers.", "anyOf": [ { "$ref": "#/definitions/UseAnchorContentConfiguration" }, { "type": "null" } ] }, "useAriaActivedescendantWithTabindex": { "description": "Enforce that tabIndex is assigned to non-interactive HTML elements with aria-activedescendant.", "anyOf": [ { "$ref": "#/definitions/UseAriaActivedescendantWithTabindexConfiguration" }, { "type": "null" } ] }, "useAriaPropsForRole": { "description": "Enforce that elements with ARIA roles must have all required ARIA attributes for that role.", "anyOf": [ { "$ref": "#/definitions/UseAriaPropsForRoleConfiguration" }, { "type": "null" } ] }, "useAriaPropsSupportedByRole": { "description": "Enforce that ARIA properties are valid for the roles that are supported by the element.", "anyOf": [ { "$ref": "#/definitions/UseAriaPropsSupportedByRoleConfiguration" }, { "type": "null" } ] }, "useButtonType": { "description": "Enforces the usage of the attribute type for the element button", "anyOf": [ { "$ref": "#/definitions/UseButtonTypeConfiguration" }, { "type": "null" } ] }, "useFocusableInteractive": { "description": "Elements with an interactive role and interaction handlers must be focusable.", "anyOf": [ { "$ref": "#/definitions/UseFocusableInteractiveConfiguration" }, { "type": "null" } ] }, "useGenericFontNames": { "description": "Disallow a missing generic family keyword within font families.", "anyOf": [ { "$ref": "#/definitions/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.", "anyOf": [ { "$ref": "#/definitions/UseHeadingContentConfiguration" }, { "type": "null" } ] }, "useHtmlLang": { "description": "Enforce that html element has lang attribute.", "anyOf": [ { "$ref": "#/definitions/UseHtmlLangConfiguration" }, { "type": "null" } ] }, "useIframeTitle": { "description": "Enforces the usage of the attribute title for the element iframe.", "anyOf": [ { "$ref": "#/definitions/UseIframeTitleConfiguration" }, { "type": "null" } ] }, "useKeyWithClickEvents": { "description": "Enforce onClick is accompanied by at least one of the following: onKeyUp, onKeyDown, onKeyPress.", "anyOf": [ { "$ref": "#/definitions/UseKeyWithClickEventsConfiguration" }, { "type": "null" } ] }, "useKeyWithMouseEvents": { "description": "Enforce onMouseOver / onMouseOut are accompanied by onFocus / onBlur.", "anyOf": [ { "$ref": "#/definitions/UseKeyWithMouseEventsConfiguration" }, { "type": "null" } ] }, "useMediaCaption": { "description": "Enforces that audio and video elements must have a track for captions.", "anyOf": [ { "$ref": "#/definitions/UseMediaCaptionConfiguration" }, { "type": "null" } ] }, "useSemanticElements": { "description": "It detects the use of role attributes in JSX elements and suggests using semantic elements instead.", "anyOf": [ { "$ref": "#/definitions/UseSemanticElementsConfiguration" }, { "type": "null" } ] }, "useValidAnchor": { "description": "Enforce that all anchors are valid, and they are navigable elements.", "anyOf": [ { "$ref": "#/definitions/UseValidAnchorConfiguration" }, { "type": "null" } ] }, "useValidAriaProps": { "description": "Ensures that ARIA properties aria-* are all valid.", "anyOf": [ { "$ref": "#/definitions/UseValidAriaPropsConfiguration" }, { "type": "null" } ] }, "useValidAriaRole": { "description": "Elements with ARIA roles must use a valid, non-abstract ARIA role.", "anyOf": [ { "$ref": "#/definitions/UseValidAriaRoleConfiguration" }, { "type": "null" } ] }, "useValidAriaValues": { "description": "Enforce that ARIA state and property values are valid.", "anyOf": [ { "$ref": "#/definitions/UseValidAriaValuesConfiguration" }, { "type": "null" } ] }, "useValidAutocomplete": { "description": "Use valid values for the autocomplete attribute on input elements.", "anyOf": [ { "$ref": "#/definitions/UseValidAutocompleteConfiguration" }, { "type": "null" } ] }, "useValidLang": { "description": "Ensure that the attribute passed to the lang attribute is a correct ISO language and/or country.", "anyOf": [ { "$ref": "#/definitions/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 blazing-fast-rust. `true` by default.", "type": ["boolean", "null"] }, "source": { "anyOf": [{ "$ref": "#/definitions/Source" }, { "type": "null" }] } }, "additionalProperties": false }, "ArrowParentheses": { "type": "string", "enum": ["always", "asNeeded"] }, "AssistConfiguration": { "type": "object", "properties": { "actions": { "description": "Whether blazing-fast-rust should fail in CLI if the assist were not applied to the code.", "anyOf": [{ "$ref": "#/definitions/Actions" }, { "type": "null" }] }, "enabled": { "description": "Whether blazing-fast-rust should enable assist via LSP and CLI.", "anyOf": [{ "$ref": "#/definitions/Bool" }, { "type": "null" }] }, "includes": { "description": "A list of glob patterns. blazing-fast-rust will include files/folders that will match these patterns.", "type": ["array", "null"], "items": { "$ref": "#/definitions/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", "anyOf": [ { "$ref": "#/definitions/NoAdjacentSpacesInRegexConfiguration" }, { "type": "null" } ] }, "noArguments": { "description": "Disallow the use of arguments.", "anyOf": [ { "$ref": "#/definitions/NoArgumentsConfiguration" }, { "type": "null" } ] }, "noBannedTypes": { "description": "Disallow primitive type aliases and misleading types.", "anyOf": [ { "$ref": "#/definitions/NoBannedTypesConfiguration" }, { "type": "null" } ] }, "noCommaOperator": { "description": "Disallow comma operator.", "anyOf": [ { "$ref": "#/definitions/NoCommaOperatorConfiguration" }, { "type": "null" } ] }, "noEmptyTypeParameters": { "description": "Disallow empty type parameters in type aliases and interfaces.", "anyOf": [ { "$ref": "#/definitions/NoEmptyTypeParametersConfiguration" }, { "type": "null" } ] }, "noExcessiveCognitiveComplexity": { "description": "Disallow functions that exceed a given Cognitive Complexity score.", "anyOf": [ { "$ref": "#/definitions/NoExcessiveCognitiveComplexityConfiguration" }, { "type": "null" } ] }, "noExcessiveNestedTestSuites": { "description": "This rule enforces a maximum depth to nested describe() in test files.", "anyOf": [ { "$ref": "#/definitions/NoExcessiveNestedTestSuitesConfiguration" }, { "type": "null" } ] }, "noExtraBooleanCast": { "description": "Disallow unnecessary boolean casts", "anyOf": [ { "$ref": "#/definitions/NoExtraBooleanCastConfiguration" }, { "type": "null" } ] }, "noFlatMapIdentity": { "description": "Disallow to use unnecessary callback on flatMap.", "anyOf": [ { "$ref": "#/definitions/NoFlatMapIdentityConfiguration" }, { "type": "null" } ] }, "noForEach": { "description": "Prefer for...of statement instead of Array.forEach.", "anyOf": [ { "$ref": "#/definitions/NoForEachConfiguration" }, { "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.", "anyOf": [ { "$ref": "#/definitions/NoStaticOnlyClassConfiguration" }, { "type": "null" } ] }, "noThisInStatic": { "description": "Disallow this and super in static contexts.", "anyOf": [ { "$ref": "#/definitions/NoThisInStaticConfiguration" }, { "type": "null" } ] }, "noUselessCatch": { "description": "Disallow unnecessary catch clauses.", "anyOf": [ { "$ref": "#/definitions/NoUselessCatchConfiguration" }, { "type": "null" } ] }, "noUselessConstructor": { "description": "Disallow unnecessary constructors.", "anyOf": [ { "$ref": "#/definitions/NoUselessConstructorConfiguration" }, { "type": "null" } ] }, "noUselessContinue": { "description": "Avoid using unnecessary continue.", "anyOf": [ { "$ref": "#/definitions/NoUselessContinueConfiguration" }, { "type": "null" } ] }, "noUselessEmptyExport": { "description": "Disallow empty exports that don't change anything in a module file.", "anyOf": [ { "$ref": "#/definitions/NoUselessEmptyExportConfiguration" }, { "type": "null" } ] }, "noUselessEscapeInRegex": { "description": "Disallow unnecessary escape sequence in regular expression literals.", "anyOf": [ { "$ref": "#/definitions/NoUselessEscapeInRegexConfiguration" }, { "type": "null" } ] }, "noUselessFragments": { "description": "Disallow unnecessary fragments", "anyOf": [ { "$ref": "#/definitions/NoUselessFragmentsConfiguration" }, { "type": "null" } ] }, "noUselessLabel": { "description": "Disallow unnecessary labels.", "anyOf": [ { "$ref": "#/definitions/NoUselessLabelConfiguration" }, { "type": "null" } ] }, "noUselessLoneBlockStatements": { "description": "Disallow unnecessary nested block statements.", "anyOf": [ { "$ref": "#/definitions/NoUselessLoneBlockStatementsConfiguration" }, { "type": "null" } ] }, "noUselessRename": { "description": "Disallow renaming import, export, and destructured assignments to the same name.", "anyOf": [ { "$ref": "#/definitions/NoUselessRenameConfiguration" }, { "type": "null" } ] }, "noUselessStringConcat": { "description": "Disallow unnecessary concatenation of string or template literals.", "anyOf": [ { "$ref": "#/definitions/NoUselessStringConcatConfiguration" }, { "type": "null" } ] }, "noUselessStringRaw": { "description": "Disallow unnecessary String.raw function in template string literals without any escape sequence.", "anyOf": [ { "$ref": "#/definitions/NoUselessStringRawConfiguration" }, { "type": "null" } ] }, "noUselessSwitchCase": { "description": "Disallow useless case in switch statements.", "anyOf": [ { "$ref": "#/definitions/NoUselessSwitchCaseConfiguration" }, { "type": "null" } ] }, "noUselessTernary": { "description": "Disallow ternary operators when simpler alternatives exist.", "anyOf": [ { "$ref": "#/definitions/NoUselessTernaryConfiguration" }, { "type": "null" } ] }, "noUselessThisAlias": { "description": "Disallow useless this aliasing.", "anyOf": [ { "$ref": "#/definitions/NoUselessThisAliasConfiguration" }, { "type": "null" } ] }, "noUselessTypeConstraint": { "description": "Disallow using any or unknown as type constraint.", "anyOf": [ { "$ref": "#/definitions/NoUselessTypeConstraintConfiguration" }, { "type": "null" } ] }, "noUselessUndefinedInitialization": { "description": "Disallow initializing variables to undefined.", "anyOf": [ { "$ref": "#/definitions/NoUselessUndefinedInitializationConfiguration" }, { "type": "null" } ] }, "noVoid": { "description": "Disallow the use of void operators, which is not a familiar operator.", "anyOf": [ { "$ref": "#/definitions/NoVoidConfiguration" }, { "type": "null" } ] }, "recommended": { "description": "It enables the recommended rules for this group", "type": ["boolean", "null"] }, "useArrowFunction": { "description": "Use arrow functions over function expressions.", "anyOf": [ { "$ref": "#/definitions/UseArrowFunctionConfiguration" }, { "type": "null" } ] }, "useDateNow": { "description": "Use Date.now() to get the number of milliseconds since the Unix Epoch.", "anyOf": [ { "$ref": "#/definitions/UseDateNowConfiguration" }, { "type": "null" } ] }, "useFlatMap": { "description": "Promotes the use of .flatMap() when map().flat() are used together.", "anyOf": [ { "$ref": "#/definitions/UseFlatMapConfiguration" }, { "type": "null" } ] }, "useLiteralKeys": { "description": "Enforce the usage of a literal access to properties over computed property access.", "anyOf": [ { "$ref": "#/definitions/UseLiteralKeysConfiguration" }, { "type": "null" } ] }, "useNumericLiterals": { "description": "Disallow parseInt() and Number.parseInt() in favor of binary, octal, and hexadecimal literals", "anyOf": [ { "$ref": "#/definitions/UseNumericLiteralsConfiguration" }, { "type": "null" } ] }, "useOptionalChain": { "description": "Enforce using concise optional chain instead of chained logical expressions.", "anyOf": [ { "$ref": "#/definitions/UseOptionalChainConfiguration" }, { "type": "null" } ] }, "useRegexLiterals": { "description": "Enforce the use of the regular expression literals instead of the RegExp constructor if possible.", "anyOf": [ { "$ref": "#/definitions/UseRegexLiteralsConfiguration" }, { "type": "null" } ] }, "useSimpleNumberKeys": { "description": "Disallow number literal object member names which are not base 10 or use underscore as separator.", "anyOf": [ { "$ref": "#/definitions/UseSimpleNumberKeysConfiguration" }, { "type": "null" } ] }, "useSimplifiedLogicExpression": { "description": "Discard redundant terms from logical expressions.", "anyOf": [ { "$ref": "#/definitions/UseSimplifiedLogicExpressionConfiguration" }, { "type": "null" } ] }, "useWhile": { "description": "Enforce the use of while loops instead of for loops when the initializer and update expressions are not needed.", "anyOf": [ { "$ref": "#/definitions/UseWhileConfiguration" }, { "type": "null" } ] } }, "additionalProperties": false }, "ConsistentArrayType": { "oneOf": [ { "description": "`ItemType[]`", "type": "string", "enum": ["shorthand"] }, { "description": "`Array<ItemType>`", "type": "string", "enum": ["generic"] } ] }, "Convention": { "type": "object", "properties": { "formats": { "description": "String cases to enforce", "allOf": [{ "$ref": "#/definitions/Formats" }] }, "match": { "description": "Regular expression to enforce", "anyOf": [{ "$ref": "#/definitions/Regex" }, { "type": "null" }] }, "selector": { "description": "Declarations concerned by this convention", "allOf": [{ "$ref": "#/definitions/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.", "anyOf": [ { "$ref": "#/definitions/NoChildrenPropConfiguration" }, { "type": "null" } ] }, "noConstAssign": { "description": "Prevents from having const variables being re-assigned.", "anyOf": [ { "$ref": "#/definitions/NoConstAssignConfiguration" }, { "type": "null" } ] }, "noConstantCondition": { "description": "Disallow constant expressions in conditions", "anyOf": [ { "$ref": "#/definitions/NoConstantConditionConfiguration" }, { "type": "null" } ] }, "noConstantMathMinMaxClamp": { "description": "Disallow the use of Math.min and Math.max to clamp a value where the result itself is constant.", "anyOf": [ { "$ref": "#/definitions/NoConstantMathMinMaxClampConfiguration" }, { "type": "null" } ] }, "noConstructorReturn": { "description": "Disallow returning a value from a constructor.", "anyOf": [ { "$ref": "#/definitions/NoConstructorReturnConfiguration" }, { "type": "null" } ] }, "noEmptyCharacterClassInRegex": { "description": "Disallow empty character classes in regular expression literals.", "anyOf": [ { "$ref": "#/definitions/NoEmptyCharacterClassInRegexConfiguration" }, { "type": "null" } ] }, "noEmptyPattern": { "description": "Disallows empty destructuring patterns.", "anyOf": [ { "$ref": "#/definitions/NoEmptyPatternConfiguration" }, { "type": "null" } ] }, "noGlobalObjectCalls": { "description": "Disallow calling global object properties as functions", "anyOf": [ { "$ref": "#/definitions/NoGlobalObjectCallsConfiguration" }, { "type": "null" } ] }, "noInnerDeclarations": { "description": "Disallow function and var declarations that are accessible outside their block.", "anyOf": [ { "$ref": "#/definitions/NoInnerDeclarationsConfiguration" }, { "type": "null" } ] }, "noInvalidBuiltinInstantiation": { "description": "Ensure that builtins are correctly instantiated.", "anyOf": [ { "$ref": "#/definitions/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.", "anyOf": [ { "$ref": "#/definitions/NoInvalidConstructorSuperConfiguration" }, { "type": "null" } ] }, "noInvalidDirectionInLinearGradient": { "description": "Disallow non-standard direction values for linear gradient functions.", "anyOf": [ { "$ref": "#/definitions/NoInvalidDirectionInLinearGradientConfiguration" }, { "type": "null" } ] }, "noInvalidGridAreas": { "description": "Disallows invalid named grid areas in CSS Grid Layouts.", "anyOf": [ { "$ref": "#/definitions/NoInvalidGridAreasConfiguration" }, { "type": "null" } ] }, "noInvalidPositionAtImportRule": { "description": "Disallow the use of @import at-rules in invalid positions.", "anyOf": [ { "$ref": "#/definitions/NoInvalidPositionAtImportRuleConfiguration" }, { "type": "null" } ] }, "noInvalidUseBeforeDeclaration": { "description": "Disallow the use of variables and function parameters before their declaration", "anyOf": [ { "$ref": "#/definitions/NoInvalidUseBeforeDeclarationConfiguration" }, { "type": "null" } ] }, "noMissingVarFunction": { "description": "Disallow missing var function for css variables.", "anyOf": [ { "$ref": "#/definitions/NoMissingVarFunctionConfiguration" }, { "type": "null" } ] }, "noNodejsModules": { "description": "Forbid the use of Node.js builtin modules.", "anyOf": [ { "$ref": "#/definitions/NoNodejsModulesConfiguration" }, { "type": "null" } ] }, "noNonoctalDecimalEscape": { "description": "Disallow \\8 and \\9 escape sequences in string literals.", "anyOf": [ { "$ref": "#/definitions/NoNonoctalDecimalEscapeConfiguration" }, { "type": "null" } ] }, "noPrecisionLoss": { "description": "Disallow literal numbers that lose precision", "anyOf": [ { "$ref": "#/definitions/NoPrecisionLossConfiguration" }, { "type": "null" } ] }, "noPrivateImports": { "description": "Restrict imports of private exports.", "anyOf": [ { "$ref": "#/definitions/NoPrivateImportsConfiguration" }, { "type": "null" } ] }, "noRenderReturnValue": { "description": "Prevent the usage of the return value of React.render.", "anyOf": [ { "$ref": "#/definitions/NoRenderReturnValueConfiguration" }, { "type": "null" } ] }, "noSelfAssign": { "description": "Disallow assignments where both sides are exactly the same.", "anyOf": [ { "$ref": "#/definitions/NoSelfAssignConfiguration" }, { "type": "null" } ] }, "noSetterReturn": { "description": "Disallow returning a value from a setter", "anyOf": [ { "$ref": "#/definitions/NoSetterReturnConfiguration" }, { "type": "null" } ] }, "noStringCaseMismatch": { "description": "Disallow comparison of expressions modifying the string case with non-compliant value.", "anyOf": [ { "$ref": "#/definitions/NoStringCaseMismatchConfiguration" }, { "type": "null" } ] }, "noSwitchDeclarations": { "description": "Disallow lexical declarations in switch clauses.", "anyOf": [ { "$ref": "#/definitions/NoSwitchDeclarationsConfiguration" }, { "type": "null" } ] }, "noUndeclaredDependencies": { "description": "Disallow the use of dependencies that aren't specified in the package.json.", "anyOf": [ { "$ref": "#/definitions/NoUndeclaredDependenciesConfiguration" }, { "type": "null" } ] }, "noUndeclaredVariables": { "description": "Prevents the usage of variables that haven't been declared inside the document.", "anyOf": [ { "$ref": "#/definitions/NoUndeclaredVariablesConfiguration" }, { "type": "null" } ] }, "noUnknownFunction": { "description": "Disallow unknown CSS value functions.", "anyOf": [ { "$ref": "#/definitions/NoUnknownFunctionConfiguration" }, { "type": "null" } ] }, "noUnknownMediaFeatureName": { "description": "Disallow unknown media feature names.", "anyOf": [ { "$ref": "#/definitions/NoUnknownMediaFeatureNameConfiguration" }, { "type": "null" } ] }, "noUnknownProperty": { "description": "Disallow unknown properties.", "anyOf": [ { "$ref": "#/definitions/NoUnknownPropertyConfiguration" }, { "type": "null" } ] }, "noUnknownPseudoClass": { "description": "Disallow unknown pseudo-class selectors.", "anyOf": [ { "$ref": "#/definitions/NoUnknownPseudoClassConfiguration" }, { "type": "null" } ] }, "noUnknownPseudoElement": { "description": "Disallow unknown pseudo-element selectors.", "anyOf": [ { "$ref": "#/definitions/NoUnknownPseudoElementConfiguration" }, { "type": "null" } ] }, "noUnknownTypeSelector": { "description": "Disallow unknown type selectors.", "anyOf": [ { "$ref": "#/definitions/NoUnknownTypeSelectorConfiguration" }, { "type": "null" } ] }, "noUnknownUnit": { "description": "Disallow unknown CSS units.", "anyOf": [ { "$ref": "#/definitions/NoUnknownUnitConfiguration" }, { "type": "null" } ] }, "noUnmatchableAnbSelector": { "description": "Disallow unmatchable An+B selectors.", "anyOf": [ { "$ref": "#/definitions/NoUnmatchableAnbSelectorConfiguration" }, { "type": "null" } ] }, "noUnreachable": { "description": "Disallow unreachable code", "anyOf": [ { "$ref": "#/definitions/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", "anyOf": [ { "$ref": "#/definitions/NoUnreachableSuperConfiguration" }, { "type": "null" } ] }, "noUnsafeFinally": { "description": "Disallow control flow statements in finally blocks.", "anyOf": [ { "$ref": "#/definitions/NoUnsafeFinallyConfiguration" }, { "type": "null" } ] }, "noUnsafeOptionalChaining": { "description": "Disallow the use of optional chaining in contexts where the undefined value is not allowed.", "anyOf": [ { "$ref": "#/definitions/NoUnsafeOptionalChainingConfiguration" }, { "type": "null" } ] }, "noUnusedFunctionParameters": { "description": "Disallow unused function parameters.", "anyOf": [ { "$ref": "#/definitions/NoUnusedFunctionParametersConfiguration" }, { "type": "null" } ] }, "noUnusedImports": { "description": "Disallow unused imports.", "anyOf": [ { "$ref": "#/definitions/NoUnusedImportsConfiguration" }, { "type": "null" } ] }, "noUnusedLabels": { "description": "Disallow unused labels.", "anyOf": [ { "$ref": "#/definitions/NoUnusedLabelsConfiguration" }, { "type": "null" } ] }, "noUnusedPrivateClassMembers": { "description": "Disallow unused private class members", "anyOf": [ { "$ref": "#/definitions/NoUnusedPrivateClassMembersConfiguration" }, { "type": "null" } ] }, "noUnusedVariables": { "description": "Disallow unused variables.", "anyOf": [ { "$ref": "#/definitions/NoUnusedVariablesConfiguration" }, { "type": "null" } ] }, "noVoidElementsWithChildren": { "description": "This rules prevents void elements (AKA self-closing elements) from having children.", "anyOf": [ { "$ref": "#/definitions/NoVoidElementsWithChildrenConfiguration" }, { "type": "null" } ] }, "noVoidTypeReturn": { "description": "Disallow returning a value from a function with the return type 'void'", "anyOf": [ { "$ref": "#/definitions/NoVoidTypeReturnConfiguration" }, { "type": "null" } ] }, "recommended": { "description": "It enables the recommended rules for this group", "type": ["boolean", "null"] }, "useExhaustiveDependencies": { "description": "Enforce all dependencies are correctly specified in a React hook.", "anyOf": [ { "$ref": "#/definitions/UseExhaustiveDependenciesConfiguration" }, { "type": "null" } ] }, "useHookAtTopLevel": { "description": "Enforce that all React hooks are being called from the Top Level component functions.", "anyOf": [ { "$ref": "#/definitions/UseHookAtTopLevelConfiguration" }, { "type": "null" } ] }, "useImportExtensions": { "description": "Enforce file extensions for relative imports.", "anyOf": [ { "$ref": "#/definitions/UseImportExtensionsConfiguration" }, { "type": "null" } ] }, "useIsNan": { "description": "Require calls to isNaN() when checking for NaN.", "anyOf": [ { "$ref": "#/definitions/UseIsNanConfiguration" }, { "type": "null" } ] }, "useJsxKeyInIterable": { "description": "Disallow missing key props in iterators/collection literals.", "anyOf": [ { "$ref": "#/definitions/UseJsxKeyInIterableConfiguration" }, { "type": "null" } ] }, "useValidForDirection": { "description": "Enforce \"for\" loop update clause moving the counter in the right direction.", "anyOf": [ { "$ref": "#/definitions/UseValidForDirectionConfiguration" }, { "type": "null" } ] }, "useValidTypeof": { "description": "This rule checks that the result of a typeof expression is compared to a valid value.", "anyOf": [ { "$ref": "#/definitions/UseValidTypeofConfiguration" }, { "type": "null" } ] }, "useYield": { "description": "Require generator functions to contain yield.", "anyOf": [ { "$ref": "#/definitions/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": "#/definitions/Bool" }, { "type": "null" }] } }, "additionalProperties": false }, "CssConfiguration": { "description": "Options applied to CSS files", "type": "object", "properties": { "assist": { "description": "CSS assist options", "default": null, "anyOf": [ { "$ref": "#/definitions/CssAssistConfiguration" }, { "type": "null" } ] }, "formatter": { "description": "CSS formatter options", "default": null, "anyOf": [ { "$ref": "#/definitions/CssFormatterConfiguration" }, { "type": "null" } ] }, "globals": { "description": "CSS globals", "type": ["array", "null"], "items": { "type": "string" }, "uniqueItems": true }, "linter": { "description": "CSS linter options", "default": null, "anyOf": [ { "$ref": "#/definitions/CssLinterConfiguration" }, { "type": "null" } ] }, "parser": { "description": "CSS parsing options", "default": null, "anyOf": [ { "$ref": "#/definitions/CssParserConfiguration" }, { "type": "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": "#/definitions/Bool" }, { "type": "null" }] }, "indentStyle": { "description": "The indent style applied to CSS (and its super languages) files.", "anyOf": [{ "$ref": "#/definitions/IndentStyle" }, { "type": "null" }] }, "indentWidth": { "description": "The size of the indentation applied to CSS (and its super languages) files. Default to 2.", "anyOf": [{ "$ref": "#/definitions/IndentWidth" }, { "type": "null" }] }, "lineEnding": { "description": "The type of line ending applied to CSS (and its super languages) files.", "anyOf": [{ "$ref": "#/definitions/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": "#/definitions/LineWidth" }, { "type": "null" }] }, "quoteStyle": { "description": "The type of quotes used in CSS code. Defaults to double.", "anyOf": [{ "$ref": "#/definitions/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": "#/definitions/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", "default": null, "anyOf": [{ "$ref": "#/definitions/Bool" }, { "type": "null" }] }, "cssModules": { "description": "Enables parsing of CSS Modules specific features.", "default": null, "anyOf": [{ "$ref": "#/definitions/Bool" }, { "type": "null" }] } }, "additionalProperties": false }, "CustomRestrictedElements": { "type": "object", "minProperties": 1, "additionalProperties": { "type": "string" } }, "CustomRestrictedImport": { "anyOf": [ { "description": "The message to display when this module is imported.", "type": "string" }, { "description": "Additional options to configure the message and allowed/disallowed import names.", "allOf": [{ "$ref": "#/definitions/CustomRestrictedImportOptions" }] } ] }, "CustomRestrictedImportOptions": { "type": "object", "properties": { "allowImportNames": { "description": "Names of the exported members that allowed to be not be used.", "type": "array", "items": { "type": "string" } }, "importNames": { "description": "Names of the exported members that should not be used.", "type": "array", "items": { "type": "string" } }, "message": { "description": "The message to display when this module is imported.", "type": "string" } }, "additionalProperties": false }, "CustomRestrictedType": { "anyOf": [ { "type": "string" }, { "$ref": "#/definitions/CustomRestrictedTypeOptions" } ] }, "CustomRestrictedTypeOptions": { "type": "object", "properties": { "message": { "default": "", "type": "string" }, "use": { "default": null, "type": ["string", "null"] } }, "additionalProperties": false }, "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 expanded if they are shorter than the line width.", "type": "string", "enum": ["auto"] }, { "description": "Objects and arrays are always expanded.", "type": "string", "enum": ["always"] }, { "description": "Objects and arrays are never expanded, if they are shorter than the line width.", "type": "string", "enum": ["never"] } ] }, "Extends": { "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "string" } ] }, "FilenameCase": { "description": "Supported cases for file names.", "oneOf": [ { "description": "camelCase", "type": "string", "enum": ["camelCase"] }, { "description": "Match an export name", "type": "string", "enum": ["export"] }, { "description": "kebab-case", "type": "string", "enum": ["kebab-case"] }, { "description": "PascalCase", "type": "string", "enum": ["PascalCase"] }, { "description": "snake_case", "type": "string", "enum": ["snake_case"] } ] }, "FilenameCases": { "type": "array", "items": { "$ref": "#/definitions/FilenameCase" }, "uniqueItems": true }, "FilesConfiguration": { "description": "The configuration of the filesystem", "type": "object", "properties": { "experimentalScannerIgnores": { "description": "Set of file and folder names that should be unconditionally ignored by blazing-fast-rust's scanner.\n\nblazing-fast-rust maintains an internal list of default ignore entries, which is based on user feedback and which may change in any release. This setting allows overriding this internal list completely.\n\nThis is considered an advanced feature that users _should_ not need to tweak themselves, but they can as a last resort. This setting can only be configured in root configurations, and is ignored in nested configs.\n\nEntries must be file or folder *names*. Specific paths and globs are not supported.\n\nExamples where this may be useful:\n\n```jsonc { \"files\": { \"experimentalScannerIgnores\": [ // You almost certainly don't want to scan your `.git` // folder, which is why it's already ignored by default: \".git\",\n\n// But the scanner does scan `node_modules` by default. If // you *really* don't want this, you can ignore it like // this: \"node_modules\",\n\n// But it's probably better to ignore a specific dependency. // For instance, one that happens to be particularly slow to // scan: \"RedisCommander.d.ts\", ], } } ```\n\nPlease be aware that rules relying on the module graph or type inference information may be negatively affected if dependencies of your project aren't (fully) scanned.", "type": ["array", "null"], "items": { "type": "string" } }, "ignoreUnknown": { "description": "Tells blazing-fast-rust to not emit diagnostics when handling files that doesn't know", "anyOf": [{ "$ref": "#/definitions/Bool" }, { "type": "null" }] }, "includes": { "description": "A list of glob patterns. blazing-fast-rust will handle only those files/folders that will match these patterns.", "type": ["array", "null"], "items": { "$ref": "#/definitions/NormalizedGlob" } }, "maxSize": { "description": "The maximum allowed size for source code files in bytes. Files above this limit will be ignored for performance reasons. Defaults to 1 MiB", "anyOf": [{ "$ref": "#/definitions/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", "enum": ["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", "enum": ["safe"] }, { "description": "The rule emits a code action that is _unsafe_ to apply. Usually these fixes remove comments, or change the semantic of the program.", "type": "string", "enum": ["unsafe"] } ] }, "Format": { "description": "Supported cases.", "type": "string", "enum": ["camelCase", "CONSTANT_CASE", "PascalCase", "snake_case"] }, "Formats": { "type": "array", "items": { "$ref": "#/definitions/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": "#/definitions/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": "#/definitions/BracketSameLine" }, { "type": "null" } ] }, "bracketSpacing": { "description": "Whether to insert spaces around brackets in object literals. Defaults to true.", "anyOf": [ { "$ref": "#/definitions/BracketSpacing" }, { "type": "null" } ] }, "enabled": { "anyOf": [{ "$ref": "#/definitions/Bool" }, { "type": "null" }] }, "expand": { "description": "Whether to expand arrays and objects on multiple lines. When set to `auto`, object literals are formatted on multiple lines if the first property has a newline, and array literals are formatted on a single line if it fits in the line. When set to `always`, these literals are formatted on multiple lines, regardless of length of the list. When set to `never`, these literals are formatted on a single line if it fits in the line. When formatting `package.json`, blazing-fast-rust will use `always` unless configured otherwise. Defaults to \"auto\".", "anyOf": [{ "$ref": "#/definitions/Expand" }, { "type": "null" }] }, "formatWithErrors": { "description": "Stores whether formatting should be allowed to proceed if a given file has syntax errors", "anyOf": [{ "$ref": "#/definitions/Bool" }, { "type": "null" }] }, "includes": { "description": "A list of glob patterns. The formatter will include files/folders that will match these patterns.", "type": ["array", "null"], "items": { "$ref": "#/definitions/NormalizedGlob" } }, "indentStyle": { "description": "The indent style.", "anyOf": [{ "$ref": "#/definitions/IndentStyle" }, { "type": "null" }] }, "indentWidth": { "description": "The size of the indentation, 2 by default", "anyOf": [{ "$ref": "#/definitio