2.5.10
Patch Changes
-
#11403
8f7786fThanks @Princesseuh! - Fixed Astro rejecting JavaScript comments between attributes.<div /* block comment */ class="something"></div> <Component /* c */ client:load />
-
#11403
8f7786fThanks @Princesseuh! - Fixed a bare<in Astro text being treated as the start of a tag, such as<p>5 < 6 and 7 > 6</p>. As in HTML, a<that cannot open a tag is text and needs no escaping. -
#11438
3133ffaThanks @Princesseuh! - Fixed #8294: an Astro expression holding only a comment is no longer reported as a parse error, which also stopped the whole file from being formatted.<div>{/* a note */}</div> <div class={/* a note */}>x</div>
-
#11403
8f7786fThanks @Princesseuh! - Fixed #9165: an empty Astro expression such as<div>{}</div>no longer fails to parse. Astro renders{}as nothing. -
#11403
8f7786fThanks @Princesseuh! - Fixed Astro expressions containing a comment failing to parse.<div>{/* block comment */ x}</div> <div>{/* only a comment */}</div>
-
#11403
8f7786fThanks @Princesseuh! - Added support for Astro's fragment shorthand.<> <p>a</p> </>
-
#11403
8f7786fThanks @Princesseuh! - Fixed an Astro frontmatter block being cut short by a closing tag inside a string or comment.--- const a = "</script>"; // </script> in a comment ---
-
#11403
8f7786fThanks @Princesseuh! - Fixed---being read as an Astro frontmatter fence when markup precedes it. Astro only recognizes frontmatter at the very start of a file, so a file opening with a comment now has no frontmatter, and its---lines are content.<!-- c --> --- this is text, not frontmatter --- -
#11403
8f7786fThanks @Princesseuh! - Fixed an Astro frontmatter block ending early on a line that merely starts with a dash.--- --count; ---
-
#11403
8f7786fThanks @Princesseuh! - Fixed the children of an Astro element carryingis:rawbeing parsed as markup instead of raw text. This now also covers<script>and<style>, whose contents Astro emits verbatim rather than processing, so they are no longer linted as JavaScript or CSS.<article is:raw><% awesome %></article> <script is:raw>{{ mustache }}</script>
-
#11403
8f7786fThanks @Princesseuh! - Fixed Astro rejecting attribute names that start with a colon, such as:href. -
#11403
8f7786fThanks @Princesseuh! - Fixed the Astro parser failing to recover from a malformed closing tag such as<div></{<//, so that a later mistake is reported where it happens rather than cascading. -
#11403
8f7786fThanks @Princesseuh! - Fixed{inside an Astro<math>element opening an expression. MathML is foreign content where Astro parses no expressions, so LaTeX such asR^{2x}now survives as text.<svg>is unaffected. -
#11403
8f7786fThanks @Princesseuh! - Fixed{{at the start of an Astro expression being read as an interpolation. Astro has no{{ }}syntax, so{{ a: 1 }}and<Comp a={{ b: 1 }} />are object literals. -
#11403
8f7786fThanks @Princesseuh! - Fixed expressions inside an Astro<pre>or<textarea>being read as raw text. Astro parses both as ordinary elements, so their markup and interpolations are now parsed, and a variable used only inside one is no longer reported as unused.<pre>{value}</pre> <textarea><div>{value}</div></textarea>
-
#11403
8f7786fThanks @Princesseuh! - Added support for template literal attribute values in Astro, such as<div class=`a ${b} c`>. -
#11403
8f7786fThanks @Princesseuh! - Fixed Astro rejecting HTML5 unquoted attribute values that contain`,=,'or", such as<a href=a=b>and<a href=a'b>. -
#11393
dec5a8fThanks @1678092075! - Fixed #11207:useStrictModeno longer reports Vue event handlers such as@click="count++". -
#11431
c065f99Thanks @levrik! - Fixed #11429: Variables and imports used by Vue same-name bindings such as:disabledorv-bind:disabledare no longer reported as unused. -
#11409
405dedbThanks @ematipico! - Fixed a memory leak in the LSP server where memory usage kept growing over long editor sessions. -
#11422
a51eff7Thanks @dyc3! - Fixed #11416: Biome no longer crashes when parsing incomplete{let}or{const}declarations in Svelte files. -
#11378
34b715cThanks @Netail! - Added extra rule sources from@eslint/css.biome migrate eslintdetects rules in your eslint configurations more reliably. -
#11403
8f7786fThanks @Princesseuh! - Fixed{#,{/,{:and{@being read as Svelte block openings in every HTML-like file. They are now Svelte-only, so in HTML, Vue and Angular files a sequence such as{#if x}is ordinary text instead of a parse error. -
#11443
8d45229Thanks @ematipico! - Fixed #11390:noFloatingPromisesno longer performs unnecessary type inference on call arguments when checking methods of non-generic class instances created withnew. -
#11425
9c2667bThanks @dyc3! - Fixed #6426: GritQL plugins now match and rewrite metavariables embedded in quoted strings. -
#11441
00317c3Thanks @dyc3! - Improved performance ofuseNamedCaptureGroup,noMisplacedAssertion,noSkippedTests,noExportsInTest,noDuplicateTestHooks,noIdenticalTestTitle,useTestHooksInOrder, anduseTestHooksOnTop.
What's Changed
- refactor(analyze): avoid boxed rule state strings by @dyc3 in #11385
- ci: fix advistories by @ematipico in #11391
- chore: update
spinto resolve yanked package warning by @dyc3 in #11392 - fix(useStrictMode): ignore Vue event handlers by @1678092075 in #11393
- refactor(core): settings as tracked functions by @ematipico in #11363
- feat(md): frontmatter parsing support by @ematipico in #11395
- chore: add CodSpeed and Cloudflare to sponsors by @ematipico in #11410
- chore: missing rule sources by @Netail in #11378
- chore: replace cargo-audit with cargo-deny by @Netail in #11413
- feat(js_plugin): runtime AST bindings for JS plugins by @siketyan in #10954
- chore: split just test-lintrule by @Netail in #11414
- feat(js_plugin): query AST nodes by their kind by @siketyan in #11415
- fix(core): files eviction and project by @ematipico in #11409
- fix(parse/js): handle incomplete declarations more gracefully by @dyc3 in #11422
- fix(grit): handle metavariables inside quoted strings by @dyc3 in #11425
- chore(wasm): enable JS plugins via
unstablefeature by @siketyan in #11421 - feat(js_transform): erase type annotations in TypeScript code by @siketyan in #11417
- fix(html/parser): correct Astro document parsing by @Princesseuh in #11403
- fix(visitor): register references from Vue same-name bindings by @levrik in #11431
- refactor(deserialize): type-erased visitor for reduce binary size by @siketyan in #11428
- fix(js_plugin): use web-time clock on Boa engine by @siketyan in #11434
- fix(tools): conformance checkout by @ematipico in #11444
- fix(js/parser): accept comment-only Astro template expressions by @Princesseuh in #11438
- fix(inference): use local inference for constructor dependent members by @ematipico in #11443
- perf(lint/js): optimize some rule queries and unit test call shared logic by @dyc3 in #11441
- fix(parse/js): handle incomplete svelte declarations even more by @dyc3 in #11448
- ci: release by @github-actions[bot] in #11450
New Contributors
- @1678092075 made their first contribution in #11393
- @levrik made their first contribution in #11431
Full Changelog: https://github.com/biomejs/biome/compare/@biomejs/biome@2.5.9...@biomejs/biome@2.5.10