Impact Score: 5/10
Biome CLI v2.3.5
Source available โ automated, not human-reviewed
Component: @biomejs/biome ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-11-01.
โก Executive Summary (TL;DR)
Biome @biomejs/[email protected]. Source highlight: Added support Svelte syntax `{@html}`. Biome now is able to parse and format the Svelte syntax `{@html}`:
Who Does This Impact? (Role-Based Analysis)
๐ป Software Engineers & Devs
Check the source notes against the package and APIs you use before upgrading.
๐ Product & Engineering Leads
Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.
โ๏ธ DevOps & Security
Verify the target version, runtime requirements and rollback procedure in the official documentation.
๐ง Bug Fixes & Patches (6)
- Added support Svelte syntax `{@html}`. Biome now is able to parse and format the Svelte syntax `{@html}`:
- Fixed a bug where the Biome Language Server would enable its project file watcher even when no project rules were enabled.
- Added support Svelte syntax `{@render}`. Biome now is able to parse and format the Svelte syntax `{@render}`:
- Updated documentation and diagnostic for `lint/complexity/noBannedTypes`. The rule should have a more detailed description and diagnostic error message.
- Biome now keeps a blank line after the frontmatter section in Astro files.
- The CSS Parser, with `tailwindDirectives` enabled, will now accept at rules like `@media` and `@supports` in `@custom-variant` shorthand syntax.
๐ View Raw Release Notes (Original Developer Log)
## 2.3.5
### Patch Changes
- [#8023](https://github.com/biomejs/biome/pull/8023) [`96f3e77`](https://github.com/biomejs/biome/commit/96f3e778a38aa5f48e67eb44b545cba6330dc192) Thanks [@ematipico](https://github.com/ematipico)! - Added support Svelte syntax `{@html}`. Biome now is able to parse and format the Svelte syntax [`{@html}`](https://svelte.dev/docs/svelte/@html):
```diff
-{@html 'div'}
+{@html 'div'}
```
The contents of the expressions inside the `{@html <expression>}` aren't formatted yet.
- [#8058](https://github.com/biomejs/biome/pull/8058) [`5f68bcc`](https://github.com/biomejs/biome/commit/5f68bcc9ae9208366bf5aed932b3ae3082ba21b1) Thanks [@ematipico](https://github.com/ematipico)! - Fixed a bug where the Biome Language Server would enable its project file watcher even when no project rules were enabled.
Now the watching of nested configuration files and nested ignore files is delegated to the editor, if their LSP spec supports it.
- [#8023](https://github.com/biomejs/biome/pull/8023) [`96f3e77`](https://github.com/biomejs/biome/commit/96f3e778a38aa5f48e67eb44b545cba6330dc192) Thanks [@ematipico](https://github.com/ematipico)! - Added support Svelte syntax `{@render}`. Biome now is able to parse and format the Svelte syntax [`{@render}`](https://svelte.dev/docs/svelte/@render):
```diff
-{@render sum(1, 2) }
+{@render sum(1, 2)}
```
The contents of the expressions inside the `{@render <expression>}` aren't formatted yet.
- [#8006](https://github.com/biomejs/biome/pull/8006) [`f0612a5`](https://github.com/biomejs/biome/commit/f0612a511449944cacfe01f6884ca52b4f50e768) Thanks [@Bertie690](https://github.com/Bertie690)! - Updated documentation and diagnostic for `lint/complexity/noBannedTypes`. The rule should have a more detailed description and diagnostic error message.
- [#8039](https://github.com/biomejs/biome/pull/8039) [`da70d8b`](https://github.com/biomejs/biome/commit/da70d8be5d8288397a60cdea52d2a6e5f976cace) Thanks [@PFiS1737](https://github.com/PFiS1737)! - Biome now keeps a blank line after the frontmatter section in Astro files.
- [#8042](https://github.com/biomejs/biome/pull/8042) [`b7efa6f`](https://github.com/biomejs/biome/commit/b7efa6f783adc42864b15b7ff2cb2ed6803190e2) Thanks [@dyc3](https://github.com/dyc3)! - The CSS Parser, with `tailwindDirectives` enabled, will now accept at rules like `@media` and `@supports` in `@custom-variant` shorthand syntax.
- [#8064](https://github.com/biomejs/biome/pull/8064) [`3ff9d45`](https://github.com/biomejs/biome/commit/3ff9d45df031b811333d40fe62b1b24a3c5d5f43) Thanks [@dibashthapa](https://github.com/dibashthapa)! - Fixed [#7967](https://github.com/biomejs/biome/issues/7967): Fixed the issue with support for advanced SVG props
- [#8023](https://github.com/biomejs/biome/pull/8023) [`96f3e77`](https://github.com/biomejs/biome/commit/96f3e778a38aa5f48e67eb44b545cba6330dc192) Thanks [@ematipico](https://github.com/ematipico)! - Added support Svelte syntax `{@attach}`. Biome now is able to parse and format the Svelte syntax [`{@attach}`](https://svelte.dev/docs/svelte/@attach):
```diff
-<div {@attach myAttachment }>...</div>
+<div {@attach myAttachment}>...</div>
```
The contents of the expressions inside the `{@attach <expression>}` aren't formatted yet.
- [#8001](https://github.com/biomejs/biome/pull/8001) [`6e8a50e`](https://github.com/biomejs/biome/commit/6e8a50e720135012832e04728d6c0e38b8bb74a1) Thanks [@ematipico](https://github.com/ematipico)! - Added support Svelte syntax `{#key}`. Biome now is able to parse and format the Svelte syntax [`{#key}`](https://svelte.dev/docs/svelte/key):
```diff
-{#key expression} <div></div> {/key}
+{#key expression}
+ <div></div>
+{/key}
```
The contents of the expressions inside the `{#key <expression>}` aren't formatted yet.
- [#8023](https://github.com/biomejs/biome/pull/8023) [`96f3e77`](https://github.com/biomejs/biome/commit/96f3e778a38aa5f48e67eb44b545cba6330dc192) Thanks [@ematipico](https://github.com/ematipico)! - Added support Svelte syntax `{@const}`. Biome now is able to parse and format the Svelte syntax [`{@const}`](https://svelte.dev/docs/svelte/@const):
```diff
-{@const name = value}
+{@const name = value}
```
The contents of the expressions inside the `{@const <expression>}` aren't formatted yet.
- [#8044](https://github.com/biomejs/biome/pull/8044) [`8f77d4a`](https://github.com/biomejs/biome/commit/8f77d4a33ceb2c85867b09c0ffe589d1e66c8db7) Thanks [@Netail](https://github.com/Netail)! - Corrected rule source references. `biome migrate eslint` should do a bit better detecting rules in your eslint configurations.
- [#8065](https://github.com/biomejs/biome/pull/8065) [`1a2d1af`](https://github.com/biomejs/biome/commit/1a2d1af3604f36703da298017fd3cacf14e118a5) Thanks [@Netail](https://github.com/Netail)! - Added the nursery rule [`useArraySortCompare`](https://biomejs.dev/linter/rules/use-array-sort-compare/). Require Array#sort and Array#toSorted calls to always provide a compareFunction.
**Invalid:**
```js
const array = [];
array.sort();
```
**Valid:**
```js
const array = [];
array.sort((a, b) => a - b);
```
- [#7673](https://github.com/biomejs/biome/pull/7673) [`a3a713d`](https://github.com/biomejs/biome/commit/a3a713d5760821d58e065280d54e9826d18be7c3) Thanks [@dyc3](https://github.com/dyc3)! - The HTML parser is now able to parse vue directives. This enables us to write/port Vue lint rules that require inspecting the `<template>` section. However, this more complex parsing may result in parsing errors where there was none before. For those of you that have opted in to the experimental support (aka `experimentalFullSupportEnabled`), we greatly appreciate your help testing this out, and your bug reports.
- [#8031](https://github.com/biomejs/biome/pull/8031) [`fa6798a`](https://github.com/biomejs/biome/commit/fa6798a62a2c13464bdb3eb61dfe6fd5e61c320e) Thanks [@ematipico](https://github.com/ematipico)! - Added support for the Svelte syntax `{#if}{/if}`. The Biome HTML parser is now able to parse and format the [`{#if}{/if} blocks`](https://svelte.dev/docs/svelte/if):
```diff
<!-- if / else-if / else -->
{#if porridge.temperature > 100}
-<p>too hot!</p>
+ <p>too hot!</p>
{:else if 80 > porridge.temperature}
-<p>too cold!</p>
+ <p>too cold!</p>
{:else if 100 > porridge.temperature}
-<p>too too cold!</p>
+ <p>too too cold!</p>
{:else}
-<p>just right!</p>
+ <p>just right!</p>
{/if}
```
- [#8041](https://github.com/biomejs/biome/pull/8041) [`beeb7bb`](https://github.com/biomejs/biome/commit/beeb7bba7cce26e932b2b4047566c4762990caf3) Thanks [@dyc3](https://github.com/dyc3)! - The CSS parser, with `tailwindDirectives` enabled, will now accept lists of selectors in `@custom-variant` shorthand syntax.
```css
@custom-variant cell (th:has(&), td:has(&));
```
- [#8028](https://github.com/biomejs/biome/pull/8028) [`c09e45c`](https://github.com/biomejs/biome/commit/c09e45c8670c9be0305f76cd4e443a4760daedec) Thanks [@fmajestic](https://github.com/fmajestic)! - The GitLab reporter now outputs format errors.
- [#8037](https://github.com/biomejs/biome/pull/8037) [`78011b1`](https://github.com/biomejs/biome/commit/78011b16f9b698f65413b934df1672970505e640) Thanks [@PFiS1737](https://github.com/PFiS1737)! - `indentScriptAndStyle` no longer indents the frontmatter in Astro files.
- [#8009](https://github.com/biomejs/biome/pull/8009) [`6374b1f`](https://github.com/biomejs/biome/commit/6374b1f6da778a132adefa17e37e9857bba7091c) Thanks [@tmcw](https://github.com/tmcw)! - Fixed an edge case in the [`useArrowFunction`](https://biomejs.dev/linter/rules/use-arrow-function/) rule.
The rule no longer emits diagnostics for or offers to fix functions that reference
the [arguments object](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/arguments),
because that object is undefined for arrow functions.
**Valid example:**
```ts
// Valid: this function cannot be transformed into an arrow function because
// arguments is not defined for arrow functions.
const getFirstArg = function () {
return arguments[0];
};
```
## What's Changed
* feat(html/svelte): key blocks by @ematipico in https://github.com/biomejs/biome/pull/8001
* chore(parser): increase size of TokenSet by @ryan-m-walker in https://github.com/biomejs/biome/pull/7997
* feat(html/svelte): parsing of new blocks by @ematipico in https://github.com/biomejs/biome/pull/8023
* fix(useArrowFunction): make useArrowFunction rule fixer safer by @tmcw in https://github.com/biomejs/biome/pull/8009
* fix(deps): update rust crates by @renovate[bot] in https://github.com/biomejs/biome/pull/7889
* feat(cli): add format errors to GitLab reporter by @fmajestic in https://github.com/biomejs/biome/pull/8028
* fix(html/astro): don't indent Astro frontmatter by @PFiS1737 in https://github.com/biomejs/biome/pull/8037
* fix(html/astro): keep a blank after the frontmatter by @PFiS1737 in https://github.com/biomejs/biome/pull/8039
* fix(parse/tailwind): fix lexing `inset-x`, `border-slate-500`, and others by @dyc3 in https://github.com/biomejs/biome/pull/7975
* fix(parse/css/tailwind): make `@custom-variant` accept selector lists by @dyc3 in https://github.com/biomejs/biome/pull/8041
* docs: rules.rs cleanup by @Netail in https://github.com/biomejs/biome/pull/8044
* docs: update documentation + diagnostic for `noBannedTypes` description by @Bertie690 in https://github.com/biomejs/biome/pull/8006
* refactor(deserialize): exact allocation for arrays and maps by @Conaclos in https://github.com/biomejs/biome/pull/8040
* feat(parse/tailwind): add benchmark by @dyc3 in https://github.com/biomejs/biome/pull/7976
* feat(html/svelte): `if/else` syntax by @ematipico in https://github.com/biomejs/biome/pull/8031
* fix(parse/css/tailwind): make `@custom-variant` accept at-rules like `@media` by @dyc3 in https://github.com/biomejs/biome/pull/8042
* chore: enable more rustc lints by @Conaclos in https://github.com/biomejs/biome/pull/8047
* ci: trigger benches when formatter changes by @ematipico in https://github.com/biomejs/biome/pull/8046
* chore(deps): update github-actions by @renovate[bot] in https://github.com/biomejs/biome/pull/8048
* chore(deps): update dependency eslint to v9.39.1 by @renovate[bot] in https://github.com/biomejs/biome/pull/8049
* chore(deps): update rust crate jiff to 0.2.16 by @renovate[bot] in https://github.com/biomejs/biome/pull/8050
* chore(deps): update rust crate quote to 1.0.42 by @renovate[bot] in https://github.com/biomejs/biome/pull/8051
* chore(deps): update rust crate ureq to 3.1.4 by @renovate[bot] in https://github.com/biomejs/biome/pull/8052
* chore(deps): update rust docker tag to v1.91.0 by @renovate[bot] in https://github.com/biomejs/biome/pull/8056
* chore(deps): update typescript-eslint monorepo to v8.46.3 by @renovate[bot] in https://github.com/biomejs/biome/pull/8057
* feat(parse/html): support vue directive syntax by @dyc3 in https://github.com/biomejs/biome/pull/7673
* fix(lsp): biome project watcher by @ematipico in https://github.com/biomejs/biome/pull/8058
* fix(no_unknown_attribute): added support for new dom attributes by @dibashthapa in https://github.com/biomejs/biome/pull/8064
* feat(biome_js_analyze): implement useArraySortCompare by @Netail in https://github.com/biomejs/biome/pull/8065
* ci: release by @github-actions[bot] in https://github.com/biomejs/biome/pull/8003
## New Contributors
* @tmcw made their first contribution in https://github.com/biomejs/biome/pull/8009
* @fmajestic made their first contribution in https://github.com/biomejs/biome/pull/8028
* @PFiS1737 made their first contribution in https://github.com/biomejs/biome/pull/8037
**Full Changelog**: https://github.com/biomejs/biome/compare/@biomejs/[email protected]...@biomejs/[email protected]