Skip to content

feat(parse/html): parse svelte function bindings more precisely#10300

Merged
ematipico merged 1 commit into
mainfrom
dyc3/parse-svelte-bind-getter-setter
May 14, 2026
Merged

feat(parse/html): parse svelte function bindings more precisely#10300
ematipico merged 1 commit into
mainfrom
dyc3/parse-svelte-bind-getter-setter

Conversation

@dyc3

@dyc3 dyc3 commented May 7, 2026

Copy link
Copy Markdown
Contributor

Summary

Function bindings in svelte are where you can use getter/setter functions in a bind directive. documented here: https://svelte.dev/docs/svelte/bind#Function-bindings

This makes it so we parse that syntax more precisely.

<input bind:value={
	() => value,
	(v) => value = v.toLowerCase()}
/>

Implemented by gpt 5.5, but i had to do a bit of steering.

fixes #10265

Test Plan

snapshots

Docs

@changeset-bot

changeset-bot Bot commented May 7, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 7300cbc

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 13 packages
Name Type
@biomejs/biome Patch
@biomejs/cli-win32-x64 Patch
@biomejs/cli-win32-arm64 Patch
@biomejs/cli-darwin-x64 Patch
@biomejs/cli-darwin-arm64 Patch
@biomejs/cli-linux-x64 Patch
@biomejs/cli-linux-arm64 Patch
@biomejs/cli-linux-x64-musl Patch
@biomejs/cli-linux-arm64-musl Patch
@biomejs/wasm-web Patch
@biomejs/wasm-bundler Patch
@biomejs/wasm-nodejs Patch
@biomejs/backend-jsonrpc Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions github-actions Bot added A-Project Area: project A-Linter Area: linter A-Parser Area: parser A-Formatter Area: formatter A-Tooling Area: internal tools L-JavaScript Language: JavaScript and super languages L-HTML Language: HTML and super languages labels May 7, 2026
@dyc3 dyc3 requested review from a team May 7, 2026 20:00
@github-actions

github-actions Bot commented May 7, 2026

Copy link
Copy Markdown
Contributor

Parser conformance results on

js/262

Test result main count This PR count Difference
Total 53208 53208 0
Passed 51990 51990 0
Failed 1176 1176 0
Panics 42 42 0
Coverage 97.71% 97.71% 0.00%

jsx/babel

Test result main count This PR count Difference
Total 38 38 0
Passed 37 37 0
Failed 1 1 0
Panics 0 0 0
Coverage 97.37% 97.37% 0.00%

markdown/commonmark

Test result main count This PR count Difference
Total 652 652 0
Passed 651 651 0
Failed 1 1 0
Panics 0 0 0
Coverage 99.85% 99.85% 0.00%

symbols/microsoft

Test result main count This PR count Difference
Total 5467 5467 0
Passed 1915 1915 0
Failed 3552 3552 0
Panics 0 0 0
Coverage 35.03% 35.03% 0.00%

ts/babel

Test result main count This PR count Difference
Total 658 658 0
Passed 574 574 0
Failed 84 84 0
Panics 0 0 0
Coverage 87.23% 87.23% 0.00%

ts/microsoft

Test result main count This PR count Difference
Total 18876 18876 0
Passed 13010 13010 0
Failed 5865 5865 0
Panics 1 1 0
Coverage 68.92% 68.92% 0.00%

@coderabbitai

coderabbitai Bot commented May 7, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack
No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 85a6d1c1-9a92-4b47-9850-0b2da6257bd7

📥 Commits

Reviewing files that changed from the base of the PR and between c664879 and 7300cbc.

⛔ Files ignored due to path filters (9)
  • crates/biome_html_factory/src/generated/node_factory.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_html_factory/src/generated/syntax_factory.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_html_parser/tests/html_specs/ok/svelte/directives/bind_function.svelte.snap is excluded by !**/*.snap and included by **
  • crates/biome_html_syntax/src/generated/kind.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_html_syntax/src/generated/macros.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_html_syntax/src/generated/nodes.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_html_syntax/src/generated/nodes_mut.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_js_analyze/tests/specs/complexity/noCommaOperator/invalid-svelte-template.svelte.snap is excluded by !**/*.snap and included by **
  • crates/biome_js_analyze/tests/specs/complexity/noCommaOperator/valid-svelte-bind-function.svelte.snap is excluded by !**/*.snap and included by **
📒 Files selected for processing (17)
  • .changeset/fix-svelte-bind-comma.md
  • crates/biome_html_formatter/src/generated.rs
  • crates/biome_html_formatter/src/svelte/any/directive_initializer_clause.rs
  • crates/biome_html_formatter/src/svelte/any/mod.rs
  • crates/biome_html_formatter/src/svelte/auxiliary/bind_function_binding_expression.rs
  • crates/biome_html_formatter/src/svelte/auxiliary/bind_function_binding_initializer_clause.rs
  • crates/biome_html_formatter/src/svelte/auxiliary/mod.rs
  • crates/biome_html_formatter/src/svelte/value/directive_value.rs
  • crates/biome_html_parser/src/syntax/svelte.rs
  • crates/biome_html_parser/src/token_source.rs
  • crates/biome_html_parser/tests/html_specs/ok/svelte/directives/bind_function.svelte
  • crates/biome_html_syntax/src/directive_ext.rs
  • crates/biome_js_analyze/tests/specs/complexity/noCommaOperator/invalid-svelte-template.svelte
  • crates/biome_js_analyze/tests/specs/complexity/noCommaOperator/valid-svelte-bind-function.svelte
  • crates/biome_service/src/file_handlers/html/parse_embedded_nodes.rs
  • xtask/codegen/html.ungram
  • xtask/codegen/src/html_kinds_src.rs
✅ Files skipped from review due to trivial changes (5)
  • xtask/codegen/src/html_kinds_src.rs
  • crates/biome_html_formatter/src/svelte/auxiliary/mod.rs
  • crates/biome_js_analyze/tests/specs/complexity/noCommaOperator/valid-svelte-bind-function.svelte
  • crates/biome_html_formatter/src/svelte/any/mod.rs
  • crates/biome_html_formatter/src/generated.rs
🚧 Files skipped from review as they are similar to previous changes (9)
  • crates/biome_html_parser/src/token_source.rs
  • crates/biome_js_analyze/tests/specs/complexity/noCommaOperator/invalid-svelte-template.svelte
  • crates/biome_html_formatter/src/svelte/any/directive_initializer_clause.rs
  • crates/biome_html_formatter/src/svelte/auxiliary/bind_function_binding_initializer_clause.rs
  • crates/biome_html_formatter/src/svelte/auxiliary/bind_function_binding_expression.rs
  • crates/biome_html_parser/tests/html_specs/ok/svelte/directives/bind_function.svelte
  • xtask/codegen/html.ungram
  • crates/biome_html_parser/src/syntax/svelte.rs
  • crates/biome_service/src/file_handlers/html/parse_embedded_nodes.rs

Walkthrough

This PR adds grammar and HTML-kind entries for Svelte bind-function initializers, implements dedicated parsing (with guarded lookahead and fallback), updates token lexing for comma-restricted expressions, adds formatter rules and generated wiring for the new nodes, changes embedded-JS extraction to emit separate candidates for bind get/set, tightens compact formatting gating, and adds tests covering valid and invalid comma uses.

Possibly related PRs

  • biomejs/biome#9877: Touches Svelte embed parsing and HTML embed extraction (parse_embedded_nodes.rs).

Suggested reviewers

  • ematipico
🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly describes the main change: adding more precise parsing for Svelte function bindings in the HTML parser.
Description check ✅ Passed The description explains the motivation (fixing false positives in noCommaOperator rule for Svelte bind directives), provides a concrete example, links to Svelte documentation, discloses AI assistance, and references the linked issue.
Linked Issues check ✅ Passed The PR successfully implements all coding requirements from issue #10265: adds parsing support for Svelte function bindings [#10265], includes test fixtures for both valid Svelte bind syntax and invalid JavaScript comma operator usage [#10265], and extends the noCommaOperator rule's AST matching to recognize bind function binding expressions [#10265].
Out of Scope Changes check ✅ Passed All changes are directly scoped to implementing Svelte function binding parsing and supporting infrastructure (grammar updates, AST nodes, formatter rules, test fixtures). No unrelated refactoring or feature creep detected.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dyc3/parse-svelte-bind-getter-setter

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.changeset/fix-svelte-bind-comma.md:
- Line 5: Update the changeset line that references the lint rule by linking
`noCommaOperator` to its docs using the required format; replace the plain rule
name in the sentence with
[`noCommaOperator`](https://biomejs.dev/linter/rules/no-comma-operator) so the
changeset reads as: "Svelte function bindings ... so
[`noCommaOperator`](https://biomejs.dev/linter/rules/no-comma-operator) won't
emit false positives..." and ensure the link appears exactly in that
markdown-style format.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 6d003fd6-bc33-424c-8235-ba635ae8d4f2

📥 Commits

Reviewing files that changed from the base of the PR and between 8d19e7f and 39fbc46.

⛔ Files ignored due to path filters (9)
  • crates/biome_html_factory/src/generated/node_factory.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_html_factory/src/generated/syntax_factory.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_html_parser/tests/html_specs/ok/svelte/directives/bind_function.svelte.snap is excluded by !**/*.snap and included by **
  • crates/biome_html_syntax/src/generated/kind.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_html_syntax/src/generated/macros.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_html_syntax/src/generated/nodes.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_html_syntax/src/generated/nodes_mut.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_js_analyze/tests/specs/complexity/noCommaOperator/invalid-svelte-template.svelte.snap is excluded by !**/*.snap and included by **
  • crates/biome_js_analyze/tests/specs/complexity/noCommaOperator/valid-svelte-bind-function.svelte.snap is excluded by !**/*.snap and included by **
📒 Files selected for processing (17)
  • .changeset/fix-svelte-bind-comma.md
  • crates/biome_html_formatter/src/generated.rs
  • crates/biome_html_formatter/src/svelte/any/directive_initializer_clause.rs
  • crates/biome_html_formatter/src/svelte/any/mod.rs
  • crates/biome_html_formatter/src/svelte/auxiliary/bind_function_binding_expression.rs
  • crates/biome_html_formatter/src/svelte/auxiliary/bind_function_binding_initializer_clause.rs
  • crates/biome_html_formatter/src/svelte/auxiliary/mod.rs
  • crates/biome_html_formatter/src/svelte/value/directive_value.rs
  • crates/biome_html_parser/src/syntax/svelte.rs
  • crates/biome_html_parser/src/token_source.rs
  • crates/biome_html_parser/tests/html_specs/ok/svelte/directives/bind_function.svelte
  • crates/biome_html_syntax/src/directive_ext.rs
  • crates/biome_js_analyze/tests/specs/complexity/noCommaOperator/invalid-svelte-template.svelte
  • crates/biome_js_analyze/tests/specs/complexity/noCommaOperator/valid-svelte-bind-function.svelte
  • crates/biome_service/src/file_handlers/html/parse_embedded_nodes.rs
  • xtask/codegen/html.ungram
  • xtask/codegen/src/html_kinds_src.rs

Comment thread .changeset/fix-svelte-bind-comma.md Outdated
@codspeed-hq

codspeed-hq Bot commented May 7, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 67 untouched benchmarks
⏩ 189 skipped benchmarks1


Comparing dyc3/parse-svelte-bind-getter-setter (7300cbc) with main (91ed677)

Open in CodSpeed

Footnotes

  1. 189 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@dyc3 dyc3 force-pushed the dyc3/parse-svelte-bind-getter-setter branch from 39fbc46 to c664879 Compare May 7, 2026 20:20
@dyc3 dyc3 force-pushed the dyc3/parse-svelte-bind-getter-setter branch from c664879 to 7300cbc Compare May 12, 2026 15:30
@ematipico ematipico merged commit 950247c into main May 14, 2026
30 checks passed
@ematipico ematipico deleted the dyc3/parse-svelte-bind-getter-setter branch May 14, 2026 07:23
@github-actions github-actions Bot mentioned this pull request May 14, 2026
OIRNOIR pushed a commit to OIRNOIR/YouTube-Helper-Client that referenced this pull request Jun 3, 2026
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@biomejs/biome](https://biomejs.dev) ([source](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome)) | imports | patch | [`2.4.15` -> `2.4.16`](https://renovatebot.com/diffs/npm/@biomejs%2fbiome/2.4.15/2.4.16) |

---

### Release Notes

<details>
<summary>biomejs/biome (@&#8203;biomejs/biome)</summary>

### [`v2.4.16`](https://github.com/biomejs/biome/blob/HEAD/packages/@&#8203;biomejs/biome/CHANGELOG.md#2416)

[Compare Source](https://github.com/biomejs/biome/compare/@biomejs/biome@2.4.15...@biomejs/biome@2.4.16)

##### Patch Changes

- [#&#8203;10329](biomejs/biome#10329) [`ef764d5`](biomejs/biome@ef764d5) Thanks [@&#8203;Conaclos](https://github.com/Conaclos)! - Fixed an issue where diagnostics showed an incorrect location in Astro files.

- [#&#8203;10363](biomejs/biome#10363) [`50aa415`](biomejs/biome@50aa415) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Fixed HTML formatting for a case where comments could cause the formatter to split up a closing tag, which would cause the resulting HTML to be syntactically invalid.

  Input:

  ```html
  <span
    ><!-- 1
  --><span>a</span
    ><!-- 2
  --><span>b</span
    ><!-- 3
  --></span>
  ```

  Output:

  ```diff
    <span
  	  ><!-- 1
  - --> <span>a</span<!-- 2
  - --> ><span>b</span><!-- 3
  + --><span>a</span><!-- 2
  + --><span>b</span><!-- 3
    --></span
    >
  ```

- [#&#8203;10465](biomejs/biome#10465) [`0c718da`](biomejs/biome@0c718da) Thanks [@&#8203;dfedoryshchev](https://github.com/dfedoryshchev)! - Fixed diagnostics emitted by the `noUntrustedLicenses` rule.

- [#&#8203;10358](biomejs/biome#10358) [`05c2617`](biomejs/biome@05c2617) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Fixed [#&#8203;10356](biomejs/biome#10356): `biome rage --linter` now displays rules enabled through linter domains in the enabled rules list.

- [#&#8203;10300](biomejs/biome#10300) [`950247c`](biomejs/biome@950247c) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Fixed [#&#8203;10265](biomejs/biome#10265): Svelte function bindings such as `bind:value={get, set}` are now parsed more precisely, so [`noCommaOperator`](https://biomejs.dev/linter/rules/no-comma-operator/) won't emit false positives for that syntax anymore.

- [#&#8203;9786](biomejs/biome#9786) [`e71f584`](biomejs/biome@e71f584) Thanks [@&#8203;MeGaNeKoS](https://github.com/MeGaNeKoS)! - Fixed [#&#8203;8480](biomejs/biome#8480): [`useDestructuring`](https://biomejs.dev/linter/rules/use-destructuring/) now provides `variableDeclarator` and `assignmentExpression` options to control which contexts enforce destructuring, matching ESLint's `prefer-destructuring` configuration. Both default to `{array: true, object: true}`. The diagnostic for object destructuring in assignment expressions now instructs users to wrap the assignment in parentheses.

- [#&#8203;10425](biomejs/biome#10425) [`1948b72`](biomejs/biome@1948b72) Thanks [@&#8203;sjh9714](https://github.com/sjh9714)! - Fixed [#&#8203;10244](biomejs/biome#10244): The `useOptionalChain` rule now detects negated guard inequality chains like `!foo || foo.bar !== "x"`.

- [#&#8203;10442](biomejs/biome#10442) [`001f94f`](biomejs/biome@001f94f) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed [#&#8203;10411](biomejs/biome#10411): [`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/) no longer causes a stack overflow when a nested function returns an object with shorthand properties that shadow destructured variables from an outer scope.

- [#&#8203;10318](biomejs/biome#10318) [`9b1577f`](biomejs/biome@9b1577f) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Added support for `formatter.trailingCommas` in overrides. This option was previously available in the top-level formatter configuration but missing from formatter overrides.

- [#&#8203;10319](biomejs/biome#10319) [`2e37709`](biomejs/biome@2e37709) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Fixed Vue and Svelte formatting for standalone interpolations in inline elements. Biome now preserves existing newlines in cases like:

  ```diff
  - <span> {{ value }} </span>
  + <span>
  +   {{ value }}
  + </span>
  ```

- [#&#8203;10365](biomejs/biome#10365) [`0a58eb0`](biomejs/biome@0a58eb0) Thanks [@&#8203;Netail](https://github.com/Netail)! - Fixed [#&#8203;10361](biomejs/biome#10361): [`noUnusedFunctionParameters`](https://biomejs.dev/linter/rules/no-unused-function-parameters/) now mentions the parameter name in the diagnostic.

- [#&#8203;10439](biomejs/biome#10439) [`df6b867`](biomejs/biome@df6b867) Thanks [@&#8203;denbezrukov](https://github.com/denbezrukov)! - Fixed CSS and SCSS formatting for comments around declaration colons so comments between property names, colons, and values stay at the same boundary as Prettier.

  ```diff
   .selector {
  -  color: /* red, */
  -    blue;
  +  color: /* red, */ blue;
   }
  ```

- [#&#8203;10344](biomejs/biome#10344) [`b30208c`](biomejs/biome@b30208c) Thanks [@&#8203;siketyan](https://github.com/siketyan)! - Fixed [`#10123`](biomejs/biome#10123): Corrected the [`noReactNativeDeepImports`](https://biomejs.dev/linter/rules/no-react-native-deep-imports/) source rule to point to the proper upstream rule, so users can migrate from the original rule correctly.

- [#&#8203;10328](biomejs/biome#10328) [`b59133f`](biomejs/biome@b59133f) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Fixed [#&#8203;10309](biomejs/biome#10309): Biome no longer adds newlines to Astro frontmatter when linter or assist `--write` mode is enabled.

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xOTUuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE5NS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: https://git.oirnoir.dev/OIRNOIR/YouTube-Helper-Client/pulls/5
OIRNOIR pushed a commit to OIRNOIR/YouTube-Helper-Server that referenced this pull request Jun 3, 2026
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@biomejs/biome](https://biomejs.dev) ([source](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome)) | imports | patch | [`2.4.15` -> `2.4.16`](https://renovatebot.com/diffs/npm/@biomejs%2fbiome/2.4.15/2.4.16) |

---

### Release Notes

<details>
<summary>biomejs/biome (@&#8203;biomejs/biome)</summary>

### [`v2.4.16`](https://github.com/biomejs/biome/blob/HEAD/packages/@&#8203;biomejs/biome/CHANGELOG.md#2416)

[Compare Source](https://github.com/biomejs/biome/compare/@biomejs/biome@2.4.15...@biomejs/biome@2.4.16)

##### Patch Changes

- [#&#8203;10329](biomejs/biome#10329) [`ef764d5`](biomejs/biome@ef764d5) Thanks [@&#8203;Conaclos](https://github.com/Conaclos)! - Fixed an issue where diagnostics showed an incorrect location in Astro files.

- [#&#8203;10363](biomejs/biome#10363) [`50aa415`](biomejs/biome@50aa415) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Fixed HTML formatting for a case where comments could cause the formatter to split up a closing tag, which would cause the resulting HTML to be syntactically invalid.

  Input:

  ```html
  <span
    ><!-- 1
  --><span>a</span
    ><!-- 2
  --><span>b</span
    ><!-- 3
  --></span>
  ```

  Output:

  ```diff
    <span
  	  ><!-- 1
  - --> <span>a</span<!-- 2
  - --> ><span>b</span><!-- 3
  + --><span>a</span><!-- 2
  + --><span>b</span><!-- 3
    --></span
    >
  ```

- [#&#8203;10465](biomejs/biome#10465) [`0c718da`](biomejs/biome@0c718da) Thanks [@&#8203;dfedoryshchev](https://github.com/dfedoryshchev)! - Fixed diagnostics emitted by the `noUntrustedLicenses` rule.

- [#&#8203;10358](biomejs/biome#10358) [`05c2617`](biomejs/biome@05c2617) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Fixed [#&#8203;10356](biomejs/biome#10356): `biome rage --linter` now displays rules enabled through linter domains in the enabled rules list.

- [#&#8203;10300](biomejs/biome#10300) [`950247c`](biomejs/biome@950247c) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Fixed [#&#8203;10265](biomejs/biome#10265): Svelte function bindings such as `bind:value={get, set}` are now parsed more precisely, so [`noCommaOperator`](https://biomejs.dev/linter/rules/no-comma-operator/) won't emit false positives for that syntax anymore.

- [#&#8203;9786](biomejs/biome#9786) [`e71f584`](biomejs/biome@e71f584) Thanks [@&#8203;MeGaNeKoS](https://github.com/MeGaNeKoS)! - Fixed [#&#8203;8480](biomejs/biome#8480): [`useDestructuring`](https://biomejs.dev/linter/rules/use-destructuring/) now provides `variableDeclarator` and `assignmentExpression` options to control which contexts enforce destructuring, matching ESLint's `prefer-destructuring` configuration. Both default to `{array: true, object: true}`. The diagnostic for object destructuring in assignment expressions now instructs users to wrap the assignment in parentheses.

- [#&#8203;10425](biomejs/biome#10425) [`1948b72`](biomejs/biome@1948b72) Thanks [@&#8203;sjh9714](https://github.com/sjh9714)! - Fixed [#&#8203;10244](biomejs/biome#10244): The `useOptionalChain` rule now detects negated guard inequality chains like `!foo || foo.bar !== "x"`.

- [#&#8203;10442](biomejs/biome#10442) [`001f94f`](biomejs/biome@001f94f) Thanks [@&#8203;ematipico](https://github.com/ematipico)! - Fixed [#&#8203;10411](biomejs/biome#10411): [`noMisusedPromises`](https://biomejs.dev/linter/rules/no-misused-promises/) no longer causes a stack overflow when a nested function returns an object with shorthand properties that shadow destructured variables from an outer scope.

- [#&#8203;10318](biomejs/biome#10318) [`9b1577f`](biomejs/biome@9b1577f) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Added support for `formatter.trailingCommas` in overrides. This option was previously available in the top-level formatter configuration but missing from formatter overrides.

- [#&#8203;10319](biomejs/biome#10319) [`2e37709`](biomejs/biome@2e37709) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Fixed Vue and Svelte formatting for standalone interpolations in inline elements. Biome now preserves existing newlines in cases like:

  ```diff
  - <span> {{ value }} </span>
  + <span>
  +   {{ value }}
  + </span>
  ```

- [#&#8203;10365](biomejs/biome#10365) [`0a58eb0`](biomejs/biome@0a58eb0) Thanks [@&#8203;Netail](https://github.com/Netail)! - Fixed [#&#8203;10361](biomejs/biome#10361): [`noUnusedFunctionParameters`](https://biomejs.dev/linter/rules/no-unused-function-parameters/) now mentions the parameter name in the diagnostic.

- [#&#8203;10439](biomejs/biome#10439) [`df6b867`](biomejs/biome@df6b867) Thanks [@&#8203;denbezrukov](https://github.com/denbezrukov)! - Fixed CSS and SCSS formatting for comments around declaration colons so comments between property names, colons, and values stay at the same boundary as Prettier.

  ```diff
   .selector {
  -  color: /* red, */
  -    blue;
  +  color: /* red, */ blue;
   }
  ```

- [#&#8203;10344](biomejs/biome#10344) [`b30208c`](biomejs/biome@b30208c) Thanks [@&#8203;siketyan](https://github.com/siketyan)! - Fixed [`#10123`](biomejs/biome#10123): Corrected the [`noReactNativeDeepImports`](https://biomejs.dev/linter/rules/no-react-native-deep-imports/) source rule to point to the proper upstream rule, so users can migrate from the original rule correctly.

- [#&#8203;10328](biomejs/biome#10328) [`b59133f`](biomejs/biome@b59133f) Thanks [@&#8203;dyc3](https://github.com/dyc3)! - Fixed [#&#8203;10309](biomejs/biome#10309): Biome no longer adds newlines to Astro frontmatter when linter or assist `--write` mode is enabled.

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xOTUuMiIsInVwZGF0ZWRJblZlciI6IjQzLjE5NS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->

Reviewed-on: https://git.oirnoir.dev/OIRNOIR/YouTube-Helper-Server/pulls/13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-Formatter Area: formatter A-Linter Area: linter A-Parser Area: parser A-Project Area: project A-Tooling Area: internal tools L-HTML Language: HTML and super languages L-JavaScript Language: JavaScript and super languages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🐛 Wrong /lint/complexity/noCommaOperator for Svelte

2 participants