-
-
Notifications
You must be signed in to change notification settings - Fork 781
feat: support html.experimentalFullSupportEnabled for vue with jsx/tsx script #7986
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
🦋 Changeset detectedLatest commit: f936d2b The changes in this PR will be included in the next version bump. This PR includes changesets to release 13 packages
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 |
WalkthroughAdds detection for Possibly related PRs
Suggested reviewers
Pre-merge checks and finishing touches✅ Passed checks (4 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
⏰ 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)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this 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_syntax/src/element_ext.rs (1)
205-239: Implementation is correct.Both methods follow the established pattern from
is_typescript_lang(). If you're ever feeling fancy, these three methods could be consolidated with a helper likehas_script_lang(&self, lang: &str), but that's entirely optional.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (2)
crates/biome_cli/tests/snapshots/main_cases_handle_vue_files/full_support_jsx.snapis excluded by!**/*.snapand included by**crates/biome_cli/tests/snapshots/main_cases_handle_vue_files/full_support_tsx.snapis excluded by!**/*.snapand included by**
📒 Files selected for processing (3)
crates/biome_cli/tests/cases/handle_vue_files.rs(1 hunks)crates/biome_html_syntax/src/element_ext.rs(1 hunks)crates/biome_service/src/file_handlers/html.rs(1 hunks)
🧰 Additional context used
🧠 Learnings (16)
📚 Learning: 2025-10-15T09:23:33.055Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_js_type_info/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:23:33.055Z
Learning: Applies to crates/biome_js_type_info/src/type_info.rs : Add new TypeScript type support by extending the TypeData enum rather than introducing parallel structures.
Applied to files:
crates/biome_service/src/file_handlers/html.rscrates/biome_html_syntax/src/element_ext.rscrates/biome_cli/tests/cases/handle_vue_files.rs
📚 Learning: 2025-10-15T09:22:46.002Z
Learnt from: CR
Repo: biomejs/biome PR: 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 : Do not attempt to fix code; if a mandatory token/node is missing, return `None` instead
Applied to files:
crates/biome_service/src/file_handlers/html.rs
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_formatter/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:22:15.851Z
Learning: Applies to crates/biome_formatter/src/comments.rs : Expose a public HtmlComments type alias: `pub type HtmlComments = Comments<HtmlLanguage>;`
Applied to files:
crates/biome_service/src/file_handlers/html.rscrates/biome_html_syntax/src/element_ext.rs
📚 Learning: 2025-10-15T09:24:31.042Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_parser/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:24:31.042Z
Learning: Applies to crates/biome_parser/xtask/codegen/src/*_kinds_src.rs : Add src/<lang>_kinds_src.rs under xtask/codegen that returns a static KindSrc
Applied to files:
crates/biome_service/src/file_handlers/html.rscrates/biome_html_syntax/src/element_ext.rs
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
Repo: biomejs/biome PR: 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_service/src/file_handlers/html.rscrates/biome_html_syntax/src/element_ext.rs
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_formatter/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:22:15.851Z
Learning: Applies to crates/biome_formatter/src/**/*.rs : After generation, remove usages of `format_verbatim_node` and implement real formatting with biome_formatter utilities
Applied to files:
crates/biome_service/src/file_handlers/html.rs
📚 Learning: 2025-10-15T09:23:33.055Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_js_type_info/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:23:33.055Z
Learning: Applies to crates/biome_js_type_info/src/{type_info,local_inference,resolver,flattening}.rs : Avoid recursive type structures and cross-module Arcs; represent links between types using TypeReference and TypeData::Reference.
Applied to files:
crates/biome_service/src/file_handlers/html.rs
📚 Learning: 2025-10-15T09:22:46.002Z
Learnt from: CR
Repo: biomejs/biome PR: 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_service/src/file_handlers/html.rs
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
Repo: biomejs/biome PR: 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_service/src/file_handlers/html.rscrates/biome_html_syntax/src/element_ext.rscrates/biome_cli/tests/cases/handle_vue_files.rs
📚 Learning: 2025-10-15T09:24:31.042Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_parser/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:24:31.042Z
Learning: Add a new LanguageKind variant (e.g., Html) in language_kind.rs and implement/cover all methods
Applied to files:
crates/biome_html_syntax/src/element_ext.rs
📚 Learning: 2025-10-15T09:25:05.698Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_service/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:25:05.698Z
Learning: Applies to crates/biome_service/../biome_lsp/src/server.tests.rs : Keep end-to-end LSP tests in ../biome_lsp/src/server.tests.rs
Applied to files:
crates/biome_cli/tests/cases/handle_vue_files.rs
📚 Learning: 2025-10-15T09:25:05.698Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_service/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:25:05.698Z
Learning: Applies to crates/biome_service/src/workspace/watcher.tests.rs : Place watcher tests related to workspace methods in src/workspace/watcher.tests.rs
Applied to files:
crates/biome_cli/tests/cases/handle_vue_files.rs
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_formatter/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:22:15.851Z
Learning: Applies to crates/biome_formatter/tests/** : Create a tests directory containing a specs subfolder and the files spec_test.rs, spec_tests.rs, and language.rs
Applied to files:
crates/biome_cli/tests/cases/handle_vue_files.rs
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_formatter/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:22:15.851Z
Learning: Applies to crates/biome_formatter/tests/spec_tests.rs : In tests/spec_tests.rs, generate tests with `tests_macros::gen_tests! {"tests/specs/html/**/*.html", crate::spec_test::run, ""}`
Applied to files:
crates/biome_cli/tests/cases/handle_vue_files.rs
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_formatter/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:22:15.851Z
Learning: Applies to crates/biome_formatter/tests/spec_test.rs : Implement a `run` function in tests/spec_test.rs that wires SpecSnapshot and includes!("language.rs") as shown
Applied to files:
crates/biome_cli/tests/cases/handle_vue_files.rs
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_formatter/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:22:15.851Z
Learning: Applies to crates/biome_formatter/tests/specs/html/**/*.html : Place HTML test cases under tests/specs/html as .html files discovered by the test macro
Applied to files:
crates/biome_cli/tests/cases/handle_vue_files.rs
🧬 Code graph analysis (3)
crates/biome_service/src/file_handlers/html.rs (2)
packages/@biomejs/backend-jsonrpc/src/workspace.ts (1)
JsFileSource(9570-9579)crates/biome_js_syntax/src/file_source.rs (2)
jsx(168-170)tsx(188-190)
crates/biome_html_syntax/src/element_ext.rs (2)
crates/biome_html_syntax/src/generated/nodes.rs (2)
initializer(125-127)value(165-167)crates/biome_html_syntax/src/lib.rs (1)
inner_string_text(119-128)
crates/biome_cli/tests/cases/handle_vue_files.rs (3)
crates/biome_fs/src/fs/memory.rs (1)
default(37-49)crates/biome_cli/tests/main.rs (1)
run_cli(332-347)crates/biome_cli/tests/snap_test.rs (1)
assert_cli_snapshot(407-409)
🔇 Additional comments (2)
crates/biome_service/src/file_handlers/html.rs (1)
482-485: LGTM! JSX and TSX detection properly integrated.The implementation correctly maps JSX and TSX language attributes to their respective file sources, maintaining consistency with the existing TypeScript handling.
crates/biome_cli/tests/cases/handle_vue_files.rs (1)
571-684: Test coverage looks solid.Both
full_support_tsxandfull_support_jsxproperly validate the new functionality with appropriate Vue file content and JSX/TSX syntax.
|
Thank you @lisiur , can you please add a changeset? |
There was a problem hiding this 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_syntax/src/element_ext.rs (1)
205-239: Logic is sound; consider extracting the duplication.The implementation correctly detects
lang="jsx"andlang="tsx"attributes and properly handles edge cases. However, these two methods plusis_typescript_lang()(lines 188-203) repeat nearly identical logic, differing only in the final string comparison.To reduce duplication, consider extracting a helper:
+ fn has_script_lang(&self, lang_value: &str) -> bool { + let is_script = self.is_script_tag(); + let lang_attribute = self.find_attribute_by_name("lang"); + let matches_lang = lang_attribute.is_some_and(|attribute| { + attribute + .initializer() + .and_then(|initializer| initializer.value().ok()) + .and_then(|value| value.as_html_string().cloned()) + .and_then(|value| value.value_token().ok()) + .is_some_and(|token| { + let text = inner_string_text(&token); + text.eq_ignore_ascii_case(lang_value) + }) + }); + is_script && matches_lang + } + /// Returns `true` if the element is a `<script lang="ts">` pub fn is_typescript_lang(&self) -> bool { - let is_script = self.is_script_tag(); - let lang_attribute = self.find_attribute_by_name("lang"); - let is_lang_typescript = lang_attribute.is_some_and(|attribute| { - attribute - .initializer() - .and_then(|initializer| initializer.value().ok()) - .and_then(|value| value.as_html_string().cloned()) - .and_then(|value| value.value_token().ok()) - .is_some_and(|token| { - let text = inner_string_text(&token); - text.eq_ignore_ascii_case("ts") - }) - }); - is_script && is_lang_typescript + self.has_script_lang("ts") } /// Returns `true` if the element is a `<script lang="jsx">` pub fn is_jsx_lang(&self) -> bool { - let is_script = self.is_script_tag(); - let lang_attribute = self.find_attribute_by_name("lang"); - let is_lang_jsx = lang_attribute.is_some_and(|attribute| { - attribute - .initializer() - .and_then(|initializer| initializer.value().ok()) - .and_then(|value| value.as_html_string().cloned()) - .and_then(|value| value.value_token().ok()) - .is_some_and(|token| { - let text = inner_string_text(&token); - text.eq_ignore_ascii_case("jsx") - }) - }); - is_script && is_lang_jsx + self.has_script_lang("jsx") } /// Returns `true` if the element is a `<script lang="tsx">` pub fn is_tsx_lang(&self) -> bool { - let is_script = self.is_script_tag(); - let lang_attribute = self.find_attribute_by_name("lang"); - let is_lang_tsx = lang_attribute.is_some_and(|attribute| { - attribute - .initializer() - .and_then(|initializer| initializer.value().ok()) - .and_then(|value| value.as_html_string().cloned()) - .and_then(|value| value.value_token().ok()) - .is_some_and(|token| { - let text = inner_string_text(&token); - text.eq_ignore_ascii_case("tsx") - }) - }); - is_script && is_lang_tsx + self.has_script_lang("tsx") }Optionally, unit tests could be added in the test module (similar to
test_is_javascript_tagat line 267), though CLI tests already provide coverage.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (2)
crates/biome_cli/tests/snapshots/main_cases_handle_vue_files/full_support_jsx.snapis excluded by!**/*.snapand included by**crates/biome_cli/tests/snapshots/main_cases_handle_vue_files/full_support_tsx.snapis excluded by!**/*.snapand included by**
📒 Files selected for processing (4)
.changeset/public-spiders-glow.md(1 hunks)crates/biome_cli/tests/cases/handle_vue_files.rs(1 hunks)crates/biome_html_syntax/src/element_ext.rs(1 hunks)crates/biome_service/src/file_handlers/html.rs(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- .changeset/public-spiders-glow.md
🚧 Files skipped from review as they are similar to previous changes (2)
- crates/biome_service/src/file_handlers/html.rs
- crates/biome_cli/tests/cases/handle_vue_files.rs
🧰 Additional context used
🧠 Learnings (6)
📚 Learning: 2025-10-15T09:24:31.042Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_parser/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:24:31.042Z
Learning: Add a new LanguageKind variant (e.g., Html) in language_kind.rs and implement/cover all methods
Applied to files:
crates/biome_html_syntax/src/element_ext.rs
📚 Learning: 2025-10-15T09:23:33.055Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_js_type_info/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:23:33.055Z
Learning: Applies to crates/biome_js_type_info/src/type_info.rs : Add new TypeScript type support by extending the TypeData enum rather than introducing parallel structures.
Applied to files:
crates/biome_html_syntax/src/element_ext.rs
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_formatter/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:22:15.851Z
Learning: Applies to crates/biome_formatter/src/comments.rs : Expose a public HtmlComments type alias: `pub type HtmlComments = Comments<HtmlLanguage>;`
Applied to files:
crates/biome_html_syntax/src/element_ext.rs
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
Repo: biomejs/biome PR: 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_syntax/src/element_ext.rs
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
Repo: biomejs/biome PR: 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_syntax/src/element_ext.rs
📚 Learning: 2025-10-15T09:24:31.042Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_parser/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:24:31.042Z
Learning: Applies to crates/biome_parser/xtask/codegen/src/*_kinds_src.rs : Add src/<lang>_kinds_src.rs under xtask/codegen that returns a static KindSrc
Applied to files:
crates/biome_html_syntax/src/element_ext.rs
🧬 Code graph analysis (1)
crates/biome_html_syntax/src/element_ext.rs (2)
crates/biome_html_syntax/src/generated/nodes.rs (2)
initializer(125-127)value(165-167)crates/biome_html_syntax/src/lib.rs (1)
inner_string_text(119-128)
There was a problem hiding this 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 (2)
crates/biome_cli/tests/cases/handle_vue_files.rs (2)
571-629: Test structure looks solid!The test correctly verifies that Vue files with TSX scripts now parse without errors when experimental full support is enabled. Well done using the correct variable name
vue_file_path(unlike some earlier tests that mistakenly usedastro_file_path).Minor enhancement opportunity: The
Propsinterface is defined but not meaningfully exercised. Consider using it inFunctionalComponentto better test TypeScript + JSX interaction:-function FunctionalComponent() { +function FunctionalComponent(props: Props) { - return <div></div>; + return <div>{props.title}</div>; }Additionally, the original issue #7981 mentioned errors with
<Comp></Comp>in templates. You might consider adding a test case that matches the exact reproduction scenario:<template> <FunctionalComponent /> </template>
631-684: LGTM! JSX variant test complements the TSX coverage nicely.The test appropriately verifies that Vue files with JSX scripts work correctly with experimental full support enabled. The absence of TypeScript types is correct for the JSX variant.
Optional: Consider testing slightly more complex JSX to ensure robust parser coverage (e.g., nested elements, props spreading, or fragments):
function FunctionalComponent() { return ( <> <div className="wrapper"> <span>Nested content</span> </div> </> ); }
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (2)
crates/biome_cli/tests/snapshots/main_cases_handle_vue_files/full_support_jsx.snapis excluded by!**/*.snapand included by**crates/biome_cli/tests/snapshots/main_cases_handle_vue_files/full_support_tsx.snapis excluded by!**/*.snapand included by**
📒 Files selected for processing (4)
.changeset/public-spiders-glow.md(1 hunks)crates/biome_cli/tests/cases/handle_vue_files.rs(1 hunks)crates/biome_html_syntax/src/element_ext.rs(1 hunks)crates/biome_service/src/file_handlers/html.rs(1 hunks)
✅ Files skipped from review due to trivial changes (1)
- .changeset/public-spiders-glow.md
🚧 Files skipped from review as they are similar to previous changes (2)
- crates/biome_html_syntax/src/element_ext.rs
- crates/biome_service/src/file_handlers/html.rs
🧰 Additional context used
🧠 Learnings (7)
📚 Learning: 2025-10-15T09:23:33.055Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_js_type_info/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:23:33.055Z
Learning: Applies to crates/biome_js_type_info/src/type_info.rs : Add new TypeScript type support by extending the TypeData enum rather than introducing parallel structures.
Applied to files:
crates/biome_cli/tests/cases/handle_vue_files.rs
📚 Learning: 2025-10-15T09:25:05.698Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_service/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:25:05.698Z
Learning: Applies to crates/biome_service/../biome_lsp/src/server.tests.rs : Keep end-to-end LSP tests in ../biome_lsp/src/server.tests.rs
Applied to files:
crates/biome_cli/tests/cases/handle_vue_files.rs
📚 Learning: 2025-10-15T09:25:05.698Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_service/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:25:05.698Z
Learning: Applies to crates/biome_service/src/workspace/watcher.tests.rs : Place watcher tests related to workspace methods in src/workspace/watcher.tests.rs
Applied to files:
crates/biome_cli/tests/cases/handle_vue_files.rs
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_formatter/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:22:15.851Z
Learning: Applies to crates/biome_formatter/tests/spec_tests.rs : In tests/spec_tests.rs, generate tests with `tests_macros::gen_tests! {"tests/specs/html/**/*.html", crate::spec_test::run, ""}`
Applied to files:
crates/biome_cli/tests/cases/handle_vue_files.rs
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_formatter/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:22:15.851Z
Learning: Applies to crates/biome_formatter/tests/** : Create a tests directory containing a specs subfolder and the files spec_test.rs, spec_tests.rs, and language.rs
Applied to files:
crates/biome_cli/tests/cases/handle_vue_files.rs
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
Repo: biomejs/biome PR: 0
File: crates/biome_formatter/CONTRIBUTING.md:0-0
Timestamp: 2025-10-15T09:22:15.851Z
Learning: Applies to crates/biome_formatter/tests/spec_test.rs : Implement a `run` function in tests/spec_test.rs that wires SpecSnapshot and includes!("language.rs") as shown
Applied to files:
crates/biome_cli/tests/cases/handle_vue_files.rs
📚 Learning: 2025-10-15T09:22:15.851Z
Learnt from: CR
Repo: biomejs/biome PR: 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_cli/tests/cases/handle_vue_files.rs
🧬 Code graph analysis (1)
crates/biome_cli/tests/cases/handle_vue_files.rs (3)
crates/biome_fs/src/fs/memory.rs (1)
default(37-49)crates/biome_cli/tests/main.rs (1)
run_cli(332-347)crates/biome_cli/tests/snap_test.rs (1)
assert_cli_snapshot(407-409)
…x script (biomejs#7986) Co-authored-by: Emanuele Stoppa <[email protected]>
Summary
Fixes #7981
Test Plan
Added two snapshot tests to handle relevant cases.
Docs
None