Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@dyc3
Copy link
Contributor

@dyc3 dyc3 commented Oct 25, 2025

Summary

The HTML parser now accepts single text expressions in attributes.

Example:

<button {disabled}>Click me</button>

fixes #7861

Test Plan

added tests

Docs

@changeset-bot
Copy link

changeset-bot bot commented Oct 25, 2025

🦋 Changeset detected

Latest commit: a2c26a0

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-Parser Area: parser A-Formatter Area: formatter A-Tooling Area: internal tools L-HTML Language: HTML labels Oct 25, 2025
@github-actions
Copy link
Contributor

Parser conformance results on

js/262

Test result main count This PR count Difference
Total 50762 50762 0
Passed 49558 49558 0
Failed 1162 1162 0
Panics 42 42 0
Coverage 97.63% 97.63% 0.00%

jsx/babel

Test result main count This PR count Difference
Total 40 40 0
Passed 37 37 0
Failed 3 3 0
Panics 0 0 0
Coverage 92.50% 92.50% 0.00%

symbols/microsoft

Test result main count This PR count Difference
Total 6316 6316 0
Passed 2105 2105 0
Failed 4211 4211 0
Panics 0 0 0
Coverage 33.33% 33.33% 0.00%

ts/babel

Test result main count This PR count Difference
Total 835 835 0
Passed 742 742 0
Failed 93 93 0
Panics 0 0 0
Coverage 88.86% 88.86% 0.00%

ts/microsoft

Test result main count This PR count Difference
Total 18805 18805 0
Passed 14057 14057 0
Failed 4747 4747 0
Panics 1 1 0
Coverage 74.75% 74.75% 0.00%

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Oct 25, 2025

Walkthrough

Adds support for Svelte shorthand attribute syntax (e.g. {disabled}) by parsing single-brace text expressions inside attributes and routing them through a new HtmlSingleTextExpression node. The HTML parser was extended to recognise { at attribute start and use the SingleTextExpressions path with an InsideTag context; the formatter was updated to format HtmlSingleTextExpression nodes. Grammar alternatives were extended, new Svelte-focused tests were added, and a diagnostic helper disabled_svelte_prop was introduced for Svelte-like syntax in non-.svelte files.

Suggested reviewers

  • siketyan
  • ematipico

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (4 passed)
Check name Status Explanation
Title Check ✅ Passed The PR title "feat(parse/html): parse svelte shorthand props and spread props" is clear, specific, and directly describes the primary change made in the changeset. It follows conventional commit formatting and accurately represents the addition of support for Svelte shorthand attribute syntax in the HTML parser. The title is concise and would help a reviewer quickly understand the purpose of the changes.
Linked Issues Check ✅ Passed The code changes directly satisfy the requirements from linked issue #7861. The parser modifications in syntax/mod.rs implement support for single text expressions in attributes (addressing the Svelte shorthand prop syntax that was causing panics), formatter updates in attribute.rs and attribute_list.rs handle rendering of the new syntax, grammar extensions in html.ungram document the new constructs, and test cases validate the functionality. The changes eliminate the parser panic and enable proper handling of Svelte shorthand attributes without crashing.
Out of Scope Changes Check ✅ Passed All changes in this PR are directly in-scope for the stated objectives. The parser logic, formatter updates, grammar extensions, error diagnostics, and test files all directly contribute to enabling Svelte shorthand props and spread props support. The changeset file documents the release note for the feature. There are no unrelated refactorings, dependency updates, or tangential modifications present.
Description Check ✅ Passed The PR description is directly related to the changeset and provides relevant context. It explains the motivation (HTML parser now accepts single text expressions in attributes), provides a concrete example of the Svelte shorthand syntax, references the fixed issue (#7861), and notes that tests were added. The description adequately communicates what problem was solved without being unnecessarily verbose.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch dyc3/fix-svelte-prop-shorthand

📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a9de064 and a2c26a0.

⛔ Files ignored due to path filters (5)
  • crates/biome_html_parser/tests/html_specs/error/interpolation-attributes.html.snap is excluded by !**/*.snap and included by **
  • crates/biome_html_parser/tests/html_specs/ok/svelte/dynamic-prop.svelte.snap is excluded by !**/*.snap and included by **
  • crates/biome_html_parser/tests/html_specs/ok/svelte/shorthand-prop.svelte.snap is excluded by !**/*.snap and included by **
  • crates/biome_html_parser/tests/html_specs/ok/svelte/shorthand-spread-props.svelte.snap is excluded by !**/*.snap and included by **
  • crates/biome_html_syntax/src/generated/nodes.rs is excluded by !**/generated/**, !**/generated/** and included by **
📒 Files selected for processing (10)
  • .changeset/odd-lizards-build.md (1 hunks)
  • crates/biome_html_formatter/src/html/any/attribute.rs (1 hunks)
  • crates/biome_html_formatter/src/html/lists/attribute_list.rs (1 hunks)
  • crates/biome_html_parser/src/syntax/mod.rs (2 hunks)
  • crates/biome_html_parser/src/syntax/parse_error.rs (1 hunks)
  • crates/biome_html_parser/tests/html_specs/error/interpolation-attributes.html (1 hunks)
  • crates/biome_html_parser/tests/html_specs/ok/svelte/dynamic-prop.svelte (1 hunks)
  • crates/biome_html_parser/tests/html_specs/ok/svelte/shorthand-prop.svelte (1 hunks)
  • crates/biome_html_parser/tests/html_specs/ok/svelte/shorthand-spread-props.svelte (1 hunks)
  • xtask/codegen/html.ungram (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (5)
  • crates/biome_html_parser/tests/html_specs/ok/svelte/shorthand-prop.svelte
  • crates/biome_html_parser/src/syntax/mod.rs
  • crates/biome_html_parser/tests/html_specs/ok/svelte/shorthand-spread-props.svelte
  • xtask/codegen/html.ungram
  • crates/biome_html_parser/tests/html_specs/error/interpolation-attributes.html
🧰 Additional context used
📓 Path-based instructions (3)
**/*.{rs,toml}

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Format Rust and TOML files before committing (e.g., via just f)

Files:

  • crates/biome_html_parser/src/syntax/parse_error.rs
  • crates/biome_html_formatter/src/html/any/attribute.rs
  • crates/biome_html_formatter/src/html/lists/attribute_list.rs
**/*.rs

📄 CodeRabbit inference engine (CONTRIBUTING.md)

Document rules, assists, and their options with inline rustdoc in the Rust source

Files:

  • crates/biome_html_parser/src/syntax/parse_error.rs
  • crates/biome_html_formatter/src/html/any/attribute.rs
  • crates/biome_html_formatter/src/html/lists/attribute_list.rs
.changeset/*.md

📄 CodeRabbit inference engine (CONTRIBUTING.md)

.changeset/*.md: In changeset files, only use #### or ##### headers
Changesets should describe user-facing changes; internal-only changes do not need changesets
Use past tense for what you did in the changeset description and present tense for current behavior
For bug fixes, start the changeset description with a link to the issue (e.g., Fixed #1234: ...)
When referencing a rule or assist in a changeset, include a link to the rule/assist page on the website
Include a code block in the changeset when applicable to illustrate the change
End every sentence in a changeset with a full stop (.)

Files:

  • .changeset/odd-lizards-build.md
🧠 Learnings (3)
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_formatter/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:22:15.851Z
Learning: Applies to crates/biome_formatter/src/lib.rs : Implement FormatLanguage for HtmlFormatLanguage with associated types: SyntaxLanguage=HtmlLanguage, Context=HtmlFormatContext, FormatRule=FormatHtmlSyntaxNode

Applied to files:

  • crates/biome_html_formatter/src/html/any/attribute.rs
  • crates/biome_html_formatter/src/html/lists/attribute_list.rs
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_formatter/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:22:15.851Z
Learning: Applies to crates/biome_formatter/src/cst.rs : Create FormatHtmlSyntaxNode in cst.rs implementing FormatRule<HtmlSyntaxNode> and AsFormat/IntoFormat for HtmlSyntaxNode using the provided plumbing

Applied to files:

  • crates/biome_html_formatter/src/html/any/attribute.rs
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_formatter/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:22:15.851Z
Learning: Applies to crates/biome_formatter/tests/language.rs : Create tests/language.rs defining `HtmlTestFormatLanguage` and implement the TestFormatLanguage trait

Applied to files:

  • crates/biome_html_formatter/src/html/any/attribute.rs
🧬 Code graph analysis (2)
crates/biome_html_parser/src/syntax/parse_error.rs (1)
crates/biome_service/src/workspace.rs (1)
  • markup (1149-1151)
crates/biome_html_formatter/src/html/lists/attribute_list.rs (2)
crates/biome_html_formatter/src/generated.rs (15)
  • format (28-33)
  • format (66-71)
  • format (104-109)
  • format (142-144)
  • format (174-179)
  • format (212-217)
  • format (250-255)
  • format (288-293)
  • format (326-331)
  • format (364-370)
  • format (404-409)
  • format (442-447)
  • format (480-485)
  • format (512-517)
  • format (550-555)
crates/biome_html_formatter/src/html/any/attribute.rs (1)
  • fmt (9-16)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (10)
  • GitHub Check: Documentation
  • GitHub Check: Lint project (depot-ubuntu-24.04-arm-16)
  • GitHub Check: Test (depot-ubuntu-24.04-arm-16)
  • GitHub Check: Test (depot-windows-2022-16)
  • GitHub Check: End-to-end tests
  • GitHub Check: Lint project (depot-windows-2022)
  • GitHub Check: Check Dependencies
  • GitHub Check: Test Node.js API
  • GitHub Check: Parser conformance
  • GitHub Check: autofix
🔇 Additional comments (5)
.changeset/odd-lizards-build.md (1)

1-5: LGTM!

The changeset follows all guidelines: proper issue link, past tense, clear description, and correct punctuation.

crates/biome_html_formatter/src/html/any/attribute.rs (1)

14-14: LGTM!

The new match arm follows the established pattern and correctly delegates formatting to the node's format() method.

crates/biome_html_parser/tests/html_specs/ok/svelte/dynamic-prop.svelte (1)

1-1: LGTM!

Good test coverage for dynamic prop binding syntax.

crates/biome_html_formatter/src/html/lists/attribute_list.rs (1)

66-68: LGTM!

The handling of HtmlSingleTextExpression correctly mirrors the existing HtmlDoubleTextExpression pattern. Consistent and straightforward.

crates/biome_html_parser/src/syntax/parse_error.rs (1)

16-18: LGTM!

The diagnostic function is well-crafted: clear error message, helpful hint, and consistent with the existing disabled_interpolation pattern.


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

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
crates/biome_html_parser/src/syntax/mod.rs (1)

305-314: Pre-existing: Consider aligning double text expression handling.

Lines 305-314 complete with HTML_ATTRIBUTE, wrapping the double text expression. Per the grammar, HtmlDoubleTextExpression should be a direct AnyHtmlAttribute alternative (like the new single text expression handling). This is pre-existing and out of scope for this PR, but worth noting for future consistency.

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fe90c78 and c5ca396.

⛔ Files ignored due to path filters (6)
  • crates/biome_html_parser/tests/html_specs/error/interpolation-attributes.html.snap is excluded by !**/*.snap and included by **
  • crates/biome_html_parser/tests/html_specs/ok/svelte/dynamic-prop.svelte.snap is excluded by !**/*.snap and included by **
  • crates/biome_html_parser/tests/html_specs/ok/svelte/shorthand-prop.svelte.snap is excluded by !**/*.snap and included by **
  • crates/biome_html_parser/tests/html_specs/ok/svelte/shorthand-spread-props.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/nodes.rs is excluded by !**/generated/**, !**/generated/** and included by **
📒 Files selected for processing (10)
  • .changeset/odd-lizards-build.md (1 hunks)
  • crates/biome_html_formatter/src/html/any/attribute.rs (1 hunks)
  • crates/biome_html_formatter/src/html/lists/attribute_list.rs (1 hunks)
  • crates/biome_html_parser/src/syntax/mod.rs (2 hunks)
  • crates/biome_html_parser/tests/html_specs/error/interpolation-attributes.html (1 hunks)
  • crates/biome_html_parser/tests/html_specs/ok/svelte/dynamic-prop.svelte (1 hunks)
  • crates/biome_html_parser/tests/html_specs/ok/svelte/shorthand-prop.svelte (1 hunks)
  • crates/biome_html_parser/tests/html_specs/ok/svelte/shorthand-spread-props.svelte (1 hunks)
  • xtask/codegen/html.ungram (1 hunks)
  • xtask/codegen/src/html_kinds_src.rs (1 hunks)
🧰 Additional context used
📓 Path-based instructions (6)
crates/biome_*_{syntax,parser,formatter,analyze,factory,semantic}/**

📄 CodeRabbit inference engine (CLAUDE.md)

Maintain the per-language crate structure: biome_{lang}_{syntax,parser,formatter,analyze,factory,semantic}

Files:

  • crates/biome_html_formatter/src/html/lists/attribute_list.rs
  • crates/biome_html_parser/tests/html_specs/ok/svelte/dynamic-prop.svelte
  • crates/biome_html_parser/tests/html_specs/ok/svelte/shorthand-prop.svelte
  • crates/biome_html_parser/tests/html_specs/error/interpolation-attributes.html
  • crates/biome_html_formatter/src/html/any/attribute.rs
  • crates/biome_html_parser/src/syntax/mod.rs
  • crates/biome_html_parser/tests/html_specs/ok/svelte/shorthand-spread-props.svelte
crates/biome_*/**

📄 CodeRabbit inference engine (CLAUDE.md)

Place core crates under /crates/biome_*/

Files:

  • crates/biome_html_formatter/src/html/lists/attribute_list.rs
  • crates/biome_html_parser/tests/html_specs/ok/svelte/dynamic-prop.svelte
  • crates/biome_html_parser/tests/html_specs/ok/svelte/shorthand-prop.svelte
  • crates/biome_html_parser/tests/html_specs/error/interpolation-attributes.html
  • crates/biome_html_formatter/src/html/any/attribute.rs
  • crates/biome_html_parser/src/syntax/mod.rs
  • crates/biome_html_parser/tests/html_specs/ok/svelte/shorthand-spread-props.svelte
**/*.rs

📄 CodeRabbit inference engine (CONTRIBUTING.md)

**/*.rs: Format Rust files before committing (e.g., via just f which formats Rust)
Document rules, assists, and options with inline rustdoc in source

Files:

  • crates/biome_html_formatter/src/html/lists/attribute_list.rs
  • crates/biome_html_formatter/src/html/any/attribute.rs
  • crates/biome_html_parser/src/syntax/mod.rs
  • xtask/codegen/src/html_kinds_src.rs
**/tests/**

📄 CodeRabbit inference engine (CLAUDE.md)

Place test files under a tests/ directory in each crate

Files:

  • crates/biome_html_parser/tests/html_specs/ok/svelte/dynamic-prop.svelte
  • crates/biome_html_parser/tests/html_specs/ok/svelte/shorthand-prop.svelte
  • crates/biome_html_parser/tests/html_specs/error/interpolation-attributes.html
  • crates/biome_html_parser/tests/html_specs/ok/svelte/shorthand-spread-props.svelte
xtask/codegen/*.ungram

📄 CodeRabbit inference engine (CLAUDE.md)

Define and modify language grammars in .ungram files; ASTs are generated from these

Files:

  • xtask/codegen/html.ungram
.changeset/*.md

📄 CodeRabbit inference engine (CONTRIBUTING.md)

.changeset/*.md: In changesets, only use #### or ##### headers; other header levels are not allowed
Changesets should cover user-facing changes only; internal changes do not need changesets
Use past tense for what you did and present tense for current Biome behavior in changesets
When fixing a bug in a changeset, start with an issue link (e.g., “Fixed #1234: …”)
When referencing a rule or assist in a changeset, include a link to its page on the website
Include code blocks in changesets when applicable to illustrate changes
End every sentence in a changeset with a period

Files:

  • .changeset/odd-lizards-build.md
🧠 Learnings (4)
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_formatter/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:22:15.851Z
Learning: Applies to crates/biome_formatter/src/cst.rs : Create FormatHtmlSyntaxNode in cst.rs implementing FormatRule<HtmlSyntaxNode> and AsFormat/IntoFormat for HtmlSyntaxNode using the provided plumbing

Applied to files:

  • crates/biome_html_formatter/src/html/any/attribute.rs
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_formatter/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:22:15.851Z
Learning: Applies to crates/biome_formatter/src/lib.rs : Implement FormatLanguage for HtmlFormatLanguage with associated types: SyntaxLanguage=HtmlLanguage, Context=HtmlFormatContext, FormatRule=FormatHtmlSyntaxNode

Applied to files:

  • crates/biome_html_formatter/src/html/any/attribute.rs
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_formatter/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:22:15.851Z
Learning: Applies to crates/biome_formatter/tests/language.rs : Create tests/language.rs defining `HtmlTestFormatLanguage` and implement the TestFormatLanguage trait

Applied to files:

  • crates/biome_html_formatter/src/html/any/attribute.rs
📚 Learning: 2025-10-15T09:22:46.002Z
Learnt from: CR
PR: biomejs/biome#0
File: crates/biome_js_formatter/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:22:46.002Z
Learning: Applies to crates/biome_js_formatter/**/*.rs : Import and use the `FormatNode` trait for AST nodes

Applied to files:

  • crates/biome_html_formatter/src/html/any/attribute.rs
🧬 Code graph analysis (2)
crates/biome_html_formatter/src/html/lists/attribute_list.rs (2)
crates/biome_html_formatter/src/generated.rs (16)
  • format (28-33)
  • format (66-71)
  • format (104-109)
  • format (142-144)
  • format (174-179)
  • format (212-217)
  • format (250-255)
  • format (288-293)
  • format (326-331)
  • format (364-370)
  • format (404-409)
  • format (442-447)
  • format (480-485)
  • format (512-517)
  • format (550-555)
  • format (588-594)
crates/biome_html_formatter/src/html/any/attribute.rs (1)
  • fmt (9-16)
crates/biome_html_parser/src/syntax/mod.rs (1)
crates/biome_html_parser/src/syntax/parse_error.rs (1)
  • disabled_interpolation (12-14)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (9)
  • GitHub Check: Documentation
  • GitHub Check: Lint project (depot-ubuntu-24.04-arm-16)
  • GitHub Check: Test (depot-windows-2022-16)
  • GitHub Check: Test (depot-ubuntu-24.04-arm-16)
  • GitHub Check: Lint project (depot-windows-2022)
  • GitHub Check: Check Dependencies
  • GitHub Check: Test Node.js API
  • GitHub Check: autofix
  • GitHub Check: Parser conformance
🔇 Additional comments (11)
.changeset/odd-lizards-build.md (1)

1-5: LGTM!

The changeset follows all the guidelines: starts with the issue link, uses present tense for current behaviour, and ends with a period.

crates/biome_html_formatter/src/html/lists/attribute_list.rs (1)

66-68: LGTM!

The handling for HtmlSingleTextExpression mirrors the existing HtmlDoubleTextExpression pattern consistently.

crates/biome_html_formatter/src/html/any/attribute.rs (1)

14-14: LGTM!

The new variant follows the established pattern for formatting HTML attributes.

crates/biome_html_parser/tests/html_specs/ok/svelte/dynamic-prop.svelte (1)

1-1: LGTM!

Valid Svelte syntax for dynamic property binding.

crates/biome_html_parser/tests/html_specs/ok/svelte/shorthand-spread-props.svelte (1)

1-1: LGTM!

Valid Svelte syntax for spread props.

crates/biome_html_parser/tests/html_specs/ok/svelte/shorthand-prop.svelte (1)

1-1: LGTM!

This fixture tests the exact Svelte shorthand syntax reported in issue #7861.

xtask/codegen/src/html_kinds_src.rs (1)

52-53: LGTM!

The new node kinds follow the existing naming conventions and appropriately support the Svelte-specific syntax.

crates/biome_html_parser/tests/html_specs/error/interpolation-attributes.html (1)

1-1: No action required—the test is correctly positioned.

This file is intentionally in the error/ directory because .html files should reject Svelte-specific syntax like {disabled}. The corresponding .snap file contains expected parse diagnostics, confirming the error behaviour is deliberate. Svelte shorthand syntax is properly tested separately in the ok/svelte/ directory (e.g., shorthand-prop.svelte), which confirms the parser distinguishes correctly between file types.

xtask/codegen/html.ungram (1)

162-162: LGTM!

Grammar correctly extended to support Svelte shorthand props as direct attributes.

crates/biome_html_parser/src/syntax/mod.rs (2)

315-321: Correct handling of shorthand props.

The marker abandonment and direct return properly align with the grammar, where HtmlSingleTextExpression is a direct AnyHtmlAttribute alternative rather than being wrapped in HtmlAttribute.


334-334: Clean refactor with token_set!

More idiomatic and efficient than multiple at() checks, whilst correctly covering all attribute start tokens.

Copy link
Member

@ematipico ematipico left a comment

Choose a reason for hiding this comment

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

It seems we aren't parsing the error part correctly, because we aren't emitting the exclusive syntax diagnostic.

Also, it seems we aren't parsing the spread props as expected (we have the nodes, not the logic). I'm fine either way

@dyc3 dyc3 force-pushed the dyc3/fix-svelte-prop-shorthand branch from c5ca396 to a9de064 Compare October 26, 2025 13:33
@dyc3 dyc3 force-pushed the dyc3/fix-svelte-prop-shorthand branch from 35a6813 to a2c26a0 Compare October 26, 2025 15:27
@dyc3 dyc3 merged commit 0fe13fe into main Oct 26, 2025
14 checks passed
@dyc3 dyc3 deleted the dyc3/fix-svelte-prop-shorthand branch October 26, 2025 16:09
@github-actions github-actions bot mentioned this pull request Oct 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-Formatter Area: formatter A-Parser Area: parser A-Tooling Area: internal tools L-HTML Language: HTML

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🐛 Biome fails when Svelte attribute name and value match

2 participants