2.5.3
Patch Changes
-
#10815
86613d5Thanks @WaterWhisperer! - Fixed a parser panic reported in #10708: Biome now recovers when unsupported CSS Modules@valuerules or scoped@keyframesnames end at EOF. -
#10534
da9b403Thanks @Mokto! - FixednoUnusedVariablesfalse positives in Svelte files: Svelte store subscriptions ($storereferences in templates now keep the underlyingstorebinding from being flagged), and$bindable()props that are only written to in the script block (write-only is intentional for bindable props) are no longer reported as unused. -
#10827
098ba41Thanks @Aqu1bp! - Fixed #10698: ThenoUnsafeOptionalChainingrule now reports unsafe optional chains wrapped in TypeScriptas,satisfies, type assertion, and instantiation expressions, such asnew (value?.constructor as Constructor)(). -
#10773
3c6513dThanks @otkrickey! - Fixed #10772:useVueValidVOnno longer reports a missing handler for v-on directives using a verb modifier (.stop/.prevent) without an expression, e.g.<div @click.stop></div>. The rule also accepts the arg-less object syntax<div v-on="$listeners"></div>instead of reporting a missing event name. -
#10721
d83c66bThanks @minseong0324! - Improved type-aware lint rule inference for built-in globals and indexed function calls. Biome now resolvesError(...),new Error(...), optionalError#stack, and calls through indexed function values such ashandlers[0]()more accurately. -
#10865
6450276Thanks @ematipico! - Fixed #10845. Biome Language Server no longer goes in deadlock when the scanner is enabled. -
#10853
93d8e53Thanks @Netail! - Fixed #10840: Astro shorthand attribute syntax is now correctly being parsed from embedded nodes. -
#10820
bba3092Thanks @JamBalaya56562! - Fixed #10619:noProcessEnvnow also reports computed (bracket) member access. Previously only dot access was checked, soprocess["env"]andenv["NODE_ENV"](whereenvis imported fromnode:process) were missed. Both static and computed accesses are now reported. -
#10835
3447b2fThanks @dyc3! - Fixed #10824:useDomQuerySelectornow supports anignoreoption for receiver identifiers that should not be reported. -
#10875
b12e486Thanks @dyc3! - Fixed #10795:--profile-rulesnow reports timings for each plugin separately asplugin/<pluginName>, matching the naming used by plugin suppressions, instead of aggregating all plugins under a singleplugin/pluginentry. -
#10877
d6bc447Thanks @ematipico! - Fixed biome-zed#164: Biome no longer inserts stray whitespace when format-on-type runs after closing delimiters such as),], and}. -
#10867
a21463eThanks @dyc3! - Fixed #10864: Biome no longer crashes when checking or linting HTML files with unquoted attribute values such as<textarea rows=4></textarea>.
What's Changed
- fix(useVueValidVOn): allow verb-modifier-only handlers and object syntax by @otkrickey in #10773
- fix(css_parser): recover CSS Modules syntax at EOF by @WaterWhisperer in #10815
- feat(fmt/yaml): sequence mapping by @ematipico in #10814
- fix(lint): handle TypeScript wrappers in unsafe optional chains by @Aqu1bp in #10827
- fix(lint): report computed member access in noProcessEnv by @JamBalaya56562 in #10820
- ci: ignore quick-xml RustSec advisories by @JamBalaya56562 in #10831
- perf(core): embedded ranges plumbing by @ematipico in #10836
- feat(md/fmt): more compatibility gains by @ematipico in #10833
- chore(xtask): migrate Error global type by @minseong0324 in #10721
- fix(lint): suppress false positives in noUnusedVariables for Svelte store subscriptions and $bindable() props by @Mokto in #10534
- refactor(md/parse): reduce emitted nodes by @ematipico in #10847
- feat(md/fmt): quotes, thematic breaks and link definition by @ematipico in #10844
- refactor(md/parse): parse HTML into one single node by @ematipico in #10848
- docs(noMissingVarFunction): list container-name in ignored properties by @dfedoryshchev in #10852
- refactor(md/parse): fold code content lines and indentation runs by @ematipico in #10851
- fix: astro shorthand syntax embedded nodes by @Netail in #10853
- chore(xtask): migrate disposable global types by @minseong0324 in #10841
- test(cli): anchor temp-dir snapshot redaction to path boundaries by @JamBalaya56562 in #10832
- chore(deps): update github-actions by @renovate[bot] in #10856
- chore(deps): update pnpm to v11.9.0 by @renovate[bot] in #10860
- ci: ignore Bot PRs in AgentScan workflow by @siketyan in #10862
- fix(workspace): deadlock on salsa setters by @ematipico in #10865
- ci: update macos runner by @ematipico in #10866
- feat(useDomQuerySelector): add ignore option by @dyc3 in #10835
- fix(css_parser): gate SCSS syntax in CSS by @denbezrukov in #10456
- fix(html): fix inner_string_text for unquoted attribute values by @dyc3 in #10867
- chore(deps): update rust to v1.96.1 by @renovate[bot] in #10859
- ci: update crossbeam-epoch to fix advisory by @ematipico in #10874
- feat(md/fmt): bullet list spacing by @ematipico in #10854
- docs(useSortedClasses): remove outdated notes about unsupported features by @johncarmack1984 in #10872
- feat(plugins): show plugin names in --profile-rules output by @dyc3 in #10875
- chore(markdown): update prettier and test fixtures for markdown by @tidefield in #10882
- fix(lsp): guard format on type using the right characters by @ematipico in #10877
- ci: release by @github-actions[bot] in #10817
New Contributors
- @johncarmack1984 made their first contribution in #10872
Full Changelog: https://github.com/biomejs/biome/compare/@biomejs/biome@2.5.2...@biomejs/biome@2.5.3