Environment information
Details
CLI:
Version: 2.4.10
Color support: true
Platform:
CPU Architecture: x86_64
OS: linux
Environment:
BIOME_LOG_PATH: unset
BIOME_LOG_PREFIX_NAME: unset
BIOME_LOG_LEVEL: unset
BIOME_LOG_KIND: unset
BIOME_CONFIG_PATH: unset
BIOME_THREADS: unset
BIOME_WATCHER_KIND: unset
BIOME_WATCHER_POLLING_INTERVAL: unset
NO_COLOR: unset
TERM: xterm-kitty
JS_RUNTIME_VERSION: v24.11.0
JS_RUNTIME_NAME: node
NODE_PACKAGE_MANAGER: bun/1.3.11
Biome Configuration:
Status: Loaded successfully
Path: biome.json
Formatter enabled: true
Linter enabled: true
Assist enabled: true
VCS enabled: true
HTML full support enabled: true
Linter:
JavaScript enabled: unset
JSON enabled: unset
CSS enabled: unset
GraphQL enabled: unset
Recommended: unset
Enabled rules:
a11y/noAccessKey
a11y/noAriaHiddenOnFocusable
a11y/noAriaUnsupportedElements
a11y/noAutofocus
a11y/noDistractingElements
a11y/noHeaderScope
a11y/noInteractiveElementToNoninteractiveRole
a11y/noLabelWithoutControl
a11y/noNoninteractiveElementToInteractiveRole
a11y/noNoninteractiveTabindex
a11y/noPositiveTabindex
a11y/noRedundantAlt
a11y/noRedundantRoles
a11y/noStaticElementInteractions
a11y/noSvgWithoutTitle
a11y/useAltText
a11y/useAnchorContent
a11y/useAriaActivedescendantWithTabindex
a11y/useAriaPropsForRole
a11y/useAriaPropsSupportedByRole
a11y/useButtonType
a11y/useFocusableInteractive
a11y/useGenericFontNames
a11y/useHeadingContent
a11y/useHtmlLang
a11y/useIframeTitle
a11y/useKeyWithMouseEvents
a11y/useMediaCaption
a11y/useSemanticElements
a11y/useValidAnchor
a11y/useValidAriaProps
a11y/useValidAriaRole
a11y/useValidAriaValues
a11y/useValidAutocomplete
a11y/useValidLang
complexity/noAdjacentSpacesInRegex
complexity/noArguments
complexity/noCommaOperator
complexity/noEmptyTypeParameters
complexity/noExtraBooleanCast
complexity/noFlatMapIdentity
complexity/noImportantStyles
complexity/noStaticOnlyClass
complexity/noThisInStatic
complexity/noUselessCatch
complexity/noUselessConstructor
complexity/noUselessContinue
complexity/noUselessEmptyExport
complexity/noUselessEscapeInRegex
complexity/noUselessFragments
complexity/noUselessLabel
complexity/noUselessLoneBlockStatements
complexity/noUselessRename
complexity/noUselessStringRaw
complexity/noUselessSwitchCase
complexity/noUselessTernary
complexity/noUselessThisAlias
complexity/noUselessTypeConstraint
complexity/noUselessUndefinedInitialization
complexity/useArrowFunction
complexity/useDateNow
complexity/useFlatMap
complexity/useIndexOf
complexity/useLiteralKeys
complexity/useNumericLiterals
complexity/useOptionalChain
complexity/useRegexLiterals
complexity/useSimpleNumberKeys
correctness/noConstAssign
correctness/noConstantCondition
correctness/noConstantMathMinMaxClamp
correctness/noConstructorReturn
correctness/noEmptyCharacterClassInRegex
correctness/noEmptyPattern
correctness/noGlobalObjectCalls
correctness/noInnerDeclarations
correctness/noInvalidBuiltinInstantiation
correctness/noInvalidConstructorSuper
correctness/noInvalidDirectionInLinearGradient
correctness/noInvalidGridAreas
correctness/noInvalidPositionAtImportRule
correctness/noInvalidUseBeforeDeclaration
correctness/noMissingVarFunction
correctness/noNonoctalDecimalEscape
correctness/noPrecisionLoss
correctness/noSelfAssign
correctness/noSetterReturn
correctness/noStringCaseMismatch
correctness/noSwitchDeclarations
correctness/noUnknownFunction
correctness/noUnknownMediaFeatureName
correctness/noUnknownProperty
correctness/noUnknownPseudoClass
correctness/noUnknownPseudoElement
correctness/noUnknownTypeSelector
correctness/noUnknownUnit
correctness/noUnmatchableAnbSelector
correctness/noUnreachable
correctness/noUnreachableSuper
correctness/noUnsafeFinally
correctness/noUnsafeOptionalChaining
correctness/noUnusedFunctionParameters
correctness/noUnusedImports
correctness/noUnusedLabels
correctness/noUnusedPrivateClassMembers
correctness/noUnusedVariables
correctness/noVoidElementsWithChildren
correctness/noVoidTypeReturn
correctness/useGraphqlNamedOperations
correctness/useIsNan
correctness/useParseIntRadix
correctness/useValidForDirection
correctness/useValidTypeof
correctness/useYield
performance/noAccumulatingSpread
performance/noDynamicNamespaceImportAccess
security/noBlankTarget
security/noGlobalEval
style/noDescendingSpecificity
style/noInferrableTypes
style/noNonNullAssertion
style/noParameterAssign
style/noUnusedTemplateLiteral
style/noUselessElse
style/useArrayLiterals
style/useAsConstAssertion
style/useConst
style/useDefaultParameterLast
style/useDeprecatedReason
style/useEnumInitializers
style/useExponentiationOperator
style/useExportType
style/useImportType
style/useLiteralEnumMembers
style/useNodejsImportProtocol
style/useNumberNamespace
style/useSelfClosingElements
style/useSingleVarDeclarator
style/useTemplate
suspicious/noApproximativeNumericConstant
suspicious/noAssignInExpressions
suspicious/noAsyncPromiseExecutor
suspicious/noBiomeFirstException
suspicious/noCatchAssign
suspicious/noClassAssign
suspicious/noCommentText
suspicious/noCompareNegZero
suspicious/noConfusingLabels
suspicious/noConfusingVoidType
suspicious/noConstEnum
suspicious/noControlCharactersInRegex
suspicious/noDebugger
suspicious/noDocumentCookie
suspicious/noDoubleEquals
suspicious/noDuplicateAtImportRules
suspicious/noDuplicateCase
suspicious/noDuplicateClassMembers
suspicious/noDuplicateCustomProperties
suspicious/noDuplicateElseIf
suspicious/noDuplicateFields
suspicious/noDuplicateFontNames
suspicious/noDuplicateJsxProps
suspicious/noDuplicateObjectKeys
suspicious/noDuplicateParameters
suspicious/noDuplicateProperties
suspicious/noDuplicateSelectorsKeyframeBlock
suspicious/noEmptyBlock
suspicious/noEmptyInterface
suspicious/noExplicitAny
suspicious/noExtraNonNullAssertion
suspicious/noFallthroughSwitchClause
suspicious/noFunctionAssign
suspicious/noGlobalAssign
suspicious/noGlobalIsFinite
suspicious/noGlobalIsNan
suspicious/noImplicitAnyLet
suspicious/noImportAssign
suspicious/noImportantInKeyframe
suspicious/noIrregularWhitespace
suspicious/noLabelVar
suspicious/noMisleadingCharacterClass
suspicious/noMisleadingInstantiator
suspicious/noMisrefactoredShorthandAssign
suspicious/noNonNullAssertedOptionalChain
suspicious/noOctalEscape
suspicious/noPrototypeBuiltins
suspicious/noQuickfixBiome
suspicious/noRedeclare
suspicious/noRedundantUseStrict
suspicious/noSelfCompare
suspicious/noShadowRestrictedNames
suspicious/noShorthandPropertyOverrides
suspicious/noSparseArray
suspicious/noSuspiciousSemicolonInJsx
suspicious/noTemplateCurlyInString
suspicious/noThenProperty
suspicious/noTsIgnore
suspicious/noUnsafeDeclarationMerging
suspicious/noUnsafeNegation
suspicious/noUselessEscapeInString
suspicious/noUselessRegexBackrefs
suspicious/noWith
suspicious/useAdjacentOverloadSignatures
suspicious/useBiomeIgnoreFolder
suspicious/useDefaultSwitchClauseLast
suspicious/useGetterReturn
suspicious/useGoogleFontDisplay
suspicious/useIsArray
suspicious/useIterableCallbackReturn
suspicious/useNamespaceKeyword
Workspace:
Open Documents: 0
What happened?
The following error should either be behind a specific rule to toggle it or it should be thrown at all:
✖ Template expressions can only contain a single expression
13 │ @dblclick="
> 14 │ builder?.selectElement(element);
│ ^
15 │ $emit('element-dblclick');
16 │ "
ℹ Remove the extra code or split into multiple template expressions.
This code works at runtime, typescript and vue also don't complain.
Empty values in events with modifiers work as well, yet biome outputs an error:
✖ Expected a valid expression in template syntax
> 42 │ <span @click.stop.prevent="" class="invisible group-hover:visible">
│
ℹ Template expressions can only contain JavaScript expressions, not statements like 'let', 'if', or 'function'.
In this case it just calls event.stopPropagation() and event.preventDefault() with no specific handler. Again Vue and Typescript don't complain and it works at runtime
This is another example of an error which shouldn't exist or be behind a rule
✖ Expected a valid expression in template syntax
15 │ @click="
> 16 │ if (asButtons) {
│ ^^
17 │ emit('click', file);
18 │ }
ℹ Template expressions can only contain JavaScript expressions, not statements like 'let', 'if', or 'function'.
For the same reason as the first example. Again it is valid Vue and works at runtime
Expected result
Both should either not show an error or be behind a rule to leave it to the user if they want to get an error or warning or nothing
Code of Conduct
Environment information
Details
What happened?
The following error should either be behind a specific rule to toggle it or it should be thrown at all:
This code works at runtime, typescript and vue also don't complain.
Empty values in events with modifiers work as well, yet biome outputs an error:
In this case it just calls
event.stopPropagation()andevent.preventDefault()with no specific handler. Again Vue and Typescript don't complain and it works at runtimeThis is another example of an error which shouldn't exist or be behind a rule
For the same reason as the first example. Again it is valid Vue and works at runtime
Expected result
Both should either not show an error or be behind a rule to leave it to the user if they want to get an error or warning or nothing
Code of Conduct