From 1daefa2eb7bece21d322c1e4ec8f6b5c57e84513 Mon Sep 17 00:00:00 2001 From: Carson McManus Date: Mon, 3 Mar 2025 13:19:26 -0500 Subject: [PATCH] refactor(parse/html): split `HtmlName` into `HtmlTagName` and `HtmlAttributeName` --- .../src/generated/node_factory.rs | 30 +- .../src/generated/syntax_factory.rs | 65 ++-- crates/biome_html_formatter/src/generated.rs | 108 +++++-- .../src/html/auxiliary/attribute_name.rs | 12 + .../src/html/auxiliary/mod.rs | 3 +- .../src/html/auxiliary/name.rs | 12 - .../src/html/auxiliary/tag_name.rs | 12 + crates/biome_html_parser/src/syntax/mod.rs | 10 +- .../invalid-unqouted-value1.html.snap | 32 +- .../invalid-unquoted-value2.html.snap | 32 +- .../attributes/missing-initializer.html.snap | 12 +- .../error/element/br-with-end.html.snap | 16 +- .../error/element/child-no-tag-name.html.snap | 8 +- .../element/missing-close-tag-2.html.snap | 4 +- .../error/element/missing-close-tag.html.snap | 4 +- .../attributes/attributes-unquoted.html.snap | 96 +++--- .../ok/attributes/attributes.html.snap | 8 +- .../multiline-attribute-value.html.snap | 12 +- .../attributes/multiline-attributes.html.snap | 16 +- .../tests/html_specs/ok/element.html.snap | 4 +- .../html_specs/ok/element_list.html.snap | 128 ++++---- .../html_specs/ok/element_list2.html.snap | 32 +- .../embedded-languages/script-basic.html.snap | 8 +- .../embedded-languages/script-empty.html.snap | 8 +- .../script-in-string.html.snap | 8 +- .../script-less-than.html.snap | 8 +- .../tests/html_specs/ok/hello-world.html.snap | 48 +-- .../ok/no-end-tags/br-in-span.html.snap | 12 +- .../html_specs/ok/no-end-tags/br.html.snap | 4 +- .../ok/no-end-tags/casing.html.snap | 24 +- .../html_specs/ok/no-end-tags/meta.html.snap | 16 +- .../html_specs/ok/no-end-tags/param.html.snap | 48 +-- .../html_specs/ok/no-end-tags/wbr.html.snap | 48 +-- .../html_specs/ok/quote-in-child.html.snap | 16 +- .../html_specs/ok/special-chars.html.snap | 8 +- .../biome_html_syntax/src/generated/kind.rs | 3 +- .../biome_html_syntax/src/generated/macros.rs | 12 +- .../biome_html_syntax/src/generated/nodes.rs | 286 ++++++++++++------ .../src/generated/nodes_mut.rs | 32 +- xtask/codegen/html.ungram | 11 +- xtask/codegen/src/html_kinds_src.rs | 3 +- 41 files changed, 723 insertions(+), 536 deletions(-) create mode 100644 crates/biome_html_formatter/src/html/auxiliary/attribute_name.rs delete mode 100644 crates/biome_html_formatter/src/html/auxiliary/name.rs create mode 100644 crates/biome_html_formatter/src/html/auxiliary/tag_name.rs diff --git a/crates/biome_html_factory/src/generated/node_factory.rs b/crates/biome_html_factory/src/generated/node_factory.rs index 01e871947e37..373736ba938e 100644 --- a/crates/biome_html_factory/src/generated/node_factory.rs +++ b/crates/biome_html_factory/src/generated/node_factory.rs @@ -6,14 +6,14 @@ use biome_html_syntax::{ HtmlSyntaxToken as SyntaxToken, *, }; use biome_rowan::AstNode; -pub fn html_attribute(name: HtmlName) -> HtmlAttributeBuilder { +pub fn html_attribute(name: HtmlAttributeName) -> HtmlAttributeBuilder { HtmlAttributeBuilder { name, initializer: None, } } pub struct HtmlAttributeBuilder { - name: HtmlName, + name: HtmlAttributeName, initializer: Option, } impl HtmlAttributeBuilder { @@ -44,6 +44,12 @@ pub fn html_attribute_initializer_clause( ], )) } +pub fn html_attribute_name(value_token: SyntaxToken) -> HtmlAttributeName { + HtmlAttributeName::unwrap_cast(SyntaxNode::new_detached( + HtmlSyntaxKind::HTML_ATTRIBUTE_NAME, + [Some(SyntaxElement::Token(value_token))], + )) +} pub fn html_cdata_section( cdata_start_token: SyntaxToken, content_token: SyntaxToken, @@ -61,7 +67,7 @@ pub fn html_cdata_section( pub fn html_closing_element( l_angle_token: SyntaxToken, slash_token: SyntaxToken, - name: HtmlName, + name: HtmlTagName, r_angle_token: SyntaxToken, ) -> HtmlClosingElement { HtmlClosingElement::unwrap_cast(SyntaxNode::new_detached( @@ -170,15 +176,9 @@ pub fn html_element( ], )) } -pub fn html_name(value_token: SyntaxToken) -> HtmlName { - HtmlName::unwrap_cast(SyntaxNode::new_detached( - HtmlSyntaxKind::HTML_NAME, - [Some(SyntaxElement::Token(value_token))], - )) -} pub fn html_opening_element( l_angle_token: SyntaxToken, - name: HtmlName, + name: HtmlTagName, attributes: HtmlAttributeList, r_angle_token: SyntaxToken, ) -> HtmlOpeningElement { @@ -230,7 +230,7 @@ impl HtmlRootBuilder { } pub fn html_self_closing_element( l_angle_token: SyntaxToken, - name: HtmlName, + name: HtmlTagName, attributes: HtmlAttributeList, r_angle_token: SyntaxToken, ) -> HtmlSelfClosingElementBuilder { @@ -244,7 +244,7 @@ pub fn html_self_closing_element( } pub struct HtmlSelfClosingElementBuilder { l_angle_token: SyntaxToken, - name: HtmlName, + name: HtmlTagName, attributes: HtmlAttributeList, r_angle_token: SyntaxToken, slash_token: Option, @@ -273,6 +273,12 @@ pub fn html_string(value_token: SyntaxToken) -> HtmlString { [Some(SyntaxElement::Token(value_token))], )) } +pub fn html_tag_name(value_token: SyntaxToken) -> HtmlTagName { + HtmlTagName::unwrap_cast(SyntaxNode::new_detached( + HtmlSyntaxKind::HTML_TAG_NAME, + [Some(SyntaxElement::Token(value_token))], + )) +} pub fn html_attribute_list(items: I) -> HtmlAttributeList where I: IntoIterator, diff --git a/crates/biome_html_factory/src/generated/syntax_factory.rs b/crates/biome_html_factory/src/generated/syntax_factory.rs index 9c286b01721a..4b6510a26fba 100644 --- a/crates/biome_html_factory/src/generated/syntax_factory.rs +++ b/crates/biome_html_factory/src/generated/syntax_factory.rs @@ -22,7 +22,7 @@ impl SyntaxFactory for HtmlSyntaxFactory { let mut slots: RawNodeSlots<2usize> = RawNodeSlots::default(); let mut current_element = elements.next(); if let Some(element) = ¤t_element { - if HtmlName::can_cast(element.kind()) { + if HtmlAttributeName::can_cast(element.kind()) { slots.mark_present(); current_element = elements.next(); } @@ -69,6 +69,25 @@ impl SyntaxFactory for HtmlSyntaxFactory { } slots.into_node(HTML_ATTRIBUTE_INITIALIZER_CLAUSE, children) } + HTML_ATTRIBUTE_NAME => { + let mut elements = (&children).into_iter(); + let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default(); + let mut current_element = elements.next(); + if let Some(element) = ¤t_element { + if element.kind() == HTML_LITERAL { + slots.mark_present(); + current_element = elements.next(); + } + } + slots.next_slot(); + if current_element.is_some() { + return RawSyntaxNode::new( + HTML_ATTRIBUTE_NAME.to_bogus(), + children.into_iter().map(Some), + ); + } + slots.into_node(HTML_ATTRIBUTE_NAME, children) + } HTML_CDATA_SECTION => { let mut elements = (&children).into_iter(); let mut slots: RawNodeSlots<3usize> = RawNodeSlots::default(); @@ -121,7 +140,7 @@ impl SyntaxFactory for HtmlSyntaxFactory { } slots.next_slot(); if let Some(element) = ¤t_element { - if HtmlName::can_cast(element.kind()) { + if HtmlTagName::can_cast(element.kind()) { slots.mark_present(); current_element = elements.next(); } @@ -295,25 +314,6 @@ impl SyntaxFactory for HtmlSyntaxFactory { } slots.into_node(HTML_ELEMENT, children) } - HTML_NAME => { - let mut elements = (&children).into_iter(); - let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default(); - let mut current_element = elements.next(); - if let Some(element) = ¤t_element { - if element.kind() == HTML_LITERAL { - slots.mark_present(); - current_element = elements.next(); - } - } - slots.next_slot(); - if current_element.is_some() { - return RawSyntaxNode::new( - HTML_NAME.to_bogus(), - children.into_iter().map(Some), - ); - } - slots.into_node(HTML_NAME, children) - } HTML_OPENING_ELEMENT => { let mut elements = (&children).into_iter(); let mut slots: RawNodeSlots<4usize> = RawNodeSlots::default(); @@ -326,7 +326,7 @@ impl SyntaxFactory for HtmlSyntaxFactory { } slots.next_slot(); if let Some(element) = ¤t_element { - if HtmlName::can_cast(element.kind()) { + if HtmlTagName::can_cast(element.kind()) { slots.mark_present(); current_element = elements.next(); } @@ -406,7 +406,7 @@ impl SyntaxFactory for HtmlSyntaxFactory { } slots.next_slot(); if let Some(element) = ¤t_element { - if HtmlName::can_cast(element.kind()) { + if HtmlTagName::can_cast(element.kind()) { slots.mark_present(); current_element = elements.next(); } @@ -460,6 +460,25 @@ impl SyntaxFactory for HtmlSyntaxFactory { } slots.into_node(HTML_STRING, children) } + HTML_TAG_NAME => { + let mut elements = (&children).into_iter(); + let mut slots: RawNodeSlots<1usize> = RawNodeSlots::default(); + let mut current_element = elements.next(); + if let Some(element) = ¤t_element { + if element.kind() == HTML_LITERAL { + slots.mark_present(); + current_element = elements.next(); + } + } + slots.next_slot(); + if current_element.is_some() { + return RawSyntaxNode::new( + HTML_TAG_NAME.to_bogus(), + children.into_iter().map(Some), + ); + } + slots.into_node(HTML_TAG_NAME, children) + } HTML_ATTRIBUTE_LIST => { Self::make_node_list_syntax(kind, children, AnyHtmlAttribute::can_cast) } diff --git a/crates/biome_html_formatter/src/generated.rs b/crates/biome_html_formatter/src/generated.rs index 8c08c0a20b43..06c5c98c20fb 100644 --- a/crates/biome_html_formatter/src/generated.rs +++ b/crates/biome_html_formatter/src/generated.rs @@ -75,6 +75,44 @@ impl IntoFormat for biome_html_syntax::HtmlAttributeInitializ FormatOwnedWithRule :: new (self , crate :: html :: auxiliary :: attribute_initializer_clause :: FormatHtmlAttributeInitializerClause :: default ()) } } +impl FormatRule + for crate::html::auxiliary::attribute_name::FormatHtmlAttributeName +{ + type Context = HtmlFormatContext; + #[inline(always)] + fn fmt( + &self, + node: &biome_html_syntax::HtmlAttributeName, + f: &mut HtmlFormatter, + ) -> FormatResult<()> { + FormatNodeRule::::fmt(self, node, f) + } +} +impl AsFormat for biome_html_syntax::HtmlAttributeName { + type Format<'a> = FormatRefWithRule< + 'a, + biome_html_syntax::HtmlAttributeName, + crate::html::auxiliary::attribute_name::FormatHtmlAttributeName, + >; + fn format(&self) -> Self::Format<'_> { + FormatRefWithRule::new( + self, + crate::html::auxiliary::attribute_name::FormatHtmlAttributeName::default(), + ) + } +} +impl IntoFormat for biome_html_syntax::HtmlAttributeName { + type Format = FormatOwnedWithRule< + biome_html_syntax::HtmlAttributeName, + crate::html::auxiliary::attribute_name::FormatHtmlAttributeName, + >; + fn into_format(self) -> Self::Format { + FormatOwnedWithRule::new( + self, + crate::html::auxiliary::attribute_name::FormatHtmlAttributeName::default(), + ) + } +} impl FormatRule for crate::html::auxiliary::cdata_section::FormatHtmlCdataSection { @@ -303,38 +341,6 @@ impl IntoFormat for biome_html_syntax::HtmlElement { ) } } -impl FormatRule for crate::html::auxiliary::name::FormatHtmlName { - type Context = HtmlFormatContext; - #[inline(always)] - fn fmt(&self, node: &biome_html_syntax::HtmlName, f: &mut HtmlFormatter) -> FormatResult<()> { - FormatNodeRule::::fmt(self, node, f) - } -} -impl AsFormat for biome_html_syntax::HtmlName { - type Format<'a> = FormatRefWithRule< - 'a, - biome_html_syntax::HtmlName, - crate::html::auxiliary::name::FormatHtmlName, - >; - fn format(&self) -> Self::Format<'_> { - FormatRefWithRule::new( - self, - crate::html::auxiliary::name::FormatHtmlName::default(), - ) - } -} -impl IntoFormat for biome_html_syntax::HtmlName { - type Format = FormatOwnedWithRule< - biome_html_syntax::HtmlName, - crate::html::auxiliary::name::FormatHtmlName, - >; - fn into_format(self) -> Self::Format { - FormatOwnedWithRule::new( - self, - crate::html::auxiliary::name::FormatHtmlName::default(), - ) - } -} impl FormatRule for crate::html::auxiliary::opening_element::FormatHtmlOpeningElement { @@ -477,6 +483,44 @@ impl IntoFormat for biome_html_syntax::HtmlString { ) } } +impl FormatRule + for crate::html::auxiliary::tag_name::FormatHtmlTagName +{ + type Context = HtmlFormatContext; + #[inline(always)] + fn fmt( + &self, + node: &biome_html_syntax::HtmlTagName, + f: &mut HtmlFormatter, + ) -> FormatResult<()> { + FormatNodeRule::::fmt(self, node, f) + } +} +impl AsFormat for biome_html_syntax::HtmlTagName { + type Format<'a> = FormatRefWithRule< + 'a, + biome_html_syntax::HtmlTagName, + crate::html::auxiliary::tag_name::FormatHtmlTagName, + >; + fn format(&self) -> Self::Format<'_> { + FormatRefWithRule::new( + self, + crate::html::auxiliary::tag_name::FormatHtmlTagName::default(), + ) + } +} +impl IntoFormat for biome_html_syntax::HtmlTagName { + type Format = FormatOwnedWithRule< + biome_html_syntax::HtmlTagName, + crate::html::auxiliary::tag_name::FormatHtmlTagName, + >; + fn into_format(self) -> Self::Format { + FormatOwnedWithRule::new( + self, + crate::html::auxiliary::tag_name::FormatHtmlTagName::default(), + ) + } +} impl AsFormat for biome_html_syntax::HtmlAttributeList { type Format<'a> = FormatRefWithRule< 'a, diff --git a/crates/biome_html_formatter/src/html/auxiliary/attribute_name.rs b/crates/biome_html_formatter/src/html/auxiliary/attribute_name.rs new file mode 100644 index 000000000000..ab7b2b181ce3 --- /dev/null +++ b/crates/biome_html_formatter/src/html/auxiliary/attribute_name.rs @@ -0,0 +1,12 @@ +use crate::prelude::*; +use biome_formatter::write; +use biome_html_syntax::{HtmlAttributeName, HtmlAttributeNameFields}; +#[derive(Debug, Clone, Default)] +pub(crate) struct FormatHtmlAttributeName; +impl FormatNodeRule for FormatHtmlAttributeName { + fn fmt_fields(&self, node: &HtmlAttributeName, f: &mut HtmlFormatter) -> FormatResult<()> { + let HtmlAttributeNameFields { value_token } = node.as_fields(); + + write![f, [value_token.format()]] + } +} diff --git a/crates/biome_html_formatter/src/html/auxiliary/mod.rs b/crates/biome_html_formatter/src/html/auxiliary/mod.rs index 8deb77568267..a38c93eec2fd 100644 --- a/crates/biome_html_formatter/src/html/auxiliary/mod.rs +++ b/crates/biome_html_formatter/src/html/auxiliary/mod.rs @@ -2,14 +2,15 @@ pub(crate) mod attribute; pub(crate) mod attribute_initializer_clause; +pub(crate) mod attribute_name; pub(crate) mod cdata_section; pub(crate) mod closing_element; pub(crate) mod comment; pub(crate) mod content; pub(crate) mod directive; pub(crate) mod element; -pub(crate) mod name; pub(crate) mod opening_element; pub(crate) mod root; pub(crate) mod self_closing_element; pub(crate) mod string; +pub(crate) mod tag_name; diff --git a/crates/biome_html_formatter/src/html/auxiliary/name.rs b/crates/biome_html_formatter/src/html/auxiliary/name.rs deleted file mode 100644 index 2c40a1c9f4d9..000000000000 --- a/crates/biome_html_formatter/src/html/auxiliary/name.rs +++ /dev/null @@ -1,12 +0,0 @@ -use crate::prelude::*; -use biome_formatter::write; -use biome_html_syntax::{HtmlName, HtmlNameFields}; -#[derive(Debug, Clone, Default)] -pub(crate) struct FormatHtmlName; -impl FormatNodeRule for FormatHtmlName { - fn fmt_fields(&self, node: &HtmlName, f: &mut HtmlFormatter) -> FormatResult<()> { - let HtmlNameFields { value_token } = node.as_fields(); - - write![f, [value_token.format()]] - } -} diff --git a/crates/biome_html_formatter/src/html/auxiliary/tag_name.rs b/crates/biome_html_formatter/src/html/auxiliary/tag_name.rs new file mode 100644 index 000000000000..123342f38f07 --- /dev/null +++ b/crates/biome_html_formatter/src/html/auxiliary/tag_name.rs @@ -0,0 +1,12 @@ +use crate::prelude::*; +use biome_formatter::write; +use biome_html_syntax::{HtmlTagName, HtmlTagNameFields}; +#[derive(Debug, Clone, Default)] +pub(crate) struct FormatHtmlTagName; +impl FormatNodeRule for FormatHtmlTagName { + fn fmt_fields(&self, node: &HtmlTagName, f: &mut HtmlFormatter) -> FormatResult<()> { + let HtmlTagNameFields { value_token } = node.as_fields(); + + write![f, [value_token.format()]] + } +} diff --git a/crates/biome_html_parser/src/syntax/mod.rs b/crates/biome_html_parser/src/syntax/mod.rs index 5366251f380a..4bf08d5b4b95 100644 --- a/crates/biome_html_parser/src/syntax/mod.rs +++ b/crates/biome_html_parser/src/syntax/mod.rs @@ -82,7 +82,7 @@ fn parse_element(p: &mut HtmlParser) -> ParsedSyntax { let is_embedded_language_tag = EMBEDDED_LANGUAGE_ELEMENTS .iter() .any(|tag| tag.eq_ignore_ascii_case(opening_tag_name.as_str())); - parse_literal(p).or_add_diagnostic(p, expected_element_name); + parse_literal(p, HTML_TAG_NAME).or_add_diagnostic(p, expected_element_name); AttributeList.parse_list(p); @@ -144,7 +144,7 @@ fn parse_closing_tag(p: &mut HtmlParser) -> ParsedSyntax { if should_be_self_closing { p.error(void_element_should_not_have_closing_tag(p, p.cur_range()).into_diagnostic(p)); } - let _name = parse_literal(p); + let _name = parse_literal(p, HTML_TAG_NAME); p.bump_with_context(T![>], HtmlLexContext::OutsideTag); Present(m.complete(p, HTML_CLOSING_ELEMENT)) } @@ -226,7 +226,7 @@ fn parse_attribute(p: &mut HtmlParser) -> ParsedSyntax { return Absent; } let m = p.start(); - parse_literal(p).or_add_diagnostic(p, expected_attribute); + parse_literal(p, HTML_ATTRIBUTE_NAME).or_add_diagnostic(p, expected_attribute); if p.at(T![=]) { parse_attribute_initializer(p).ok(); Present(m.complete(p, HTML_ATTRIBUTE)) @@ -235,7 +235,7 @@ fn parse_attribute(p: &mut HtmlParser) -> ParsedSyntax { } } -fn parse_literal(p: &mut HtmlParser) -> ParsedSyntax { +fn parse_literal(p: &mut HtmlParser, kind: HtmlSyntaxKind) -> ParsedSyntax { if !p.at(HTML_LITERAL) { return Absent; } @@ -243,7 +243,7 @@ fn parse_literal(p: &mut HtmlParser) -> ParsedSyntax { p.bump(HTML_LITERAL); - Present(m.complete(p, HTML_NAME)) + Present(m.complete(p, kind)) } fn parse_attribute_string_literal(p: &mut HtmlParser) -> ParsedSyntax { diff --git a/crates/biome_html_parser/tests/html_specs/error/attributes/invalid-unqouted-value1.html.snap b/crates/biome_html_parser/tests/html_specs/error/attributes/invalid-unqouted-value1.html.snap index 0312046fb07e..fb753eaea365 100644 --- a/crates/biome_html_parser/tests/html_specs/error/attributes/invalid-unqouted-value1.html.snap +++ b/crates/biome_html_parser/tests/html_specs/error/attributes/invalid-unqouted-value1.html.snap @@ -23,7 +23,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..4 "div" [] [], }, attributes: HtmlAttributeList [], @@ -35,13 +35,13 @@ HtmlRoot { HtmlBogus { items: [ L_ANGLE@5..8 "<" [Newline("\n"), Whitespace("\t")] [], - HtmlName { + HtmlTagName { value_token: HTML_LITERAL@8..12 "div" [] [Whitespace(" ")], }, HtmlBogus { items: [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@12..17 "class" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -67,7 +67,7 @@ HtmlRoot { HtmlClosingElement { l_angle_token: L_ANGLE@24..25 "<" [] [], slash_token: SLASH@25..26 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@26..29 "div" [] [], }, r_angle_token: R_ANGLE@29..30 ">" [] [], @@ -79,13 +79,13 @@ HtmlRoot { HtmlBogus { items: [ L_ANGLE@30..33 "<" [Newline("\n"), Whitespace("\t")] [], - HtmlName { + HtmlTagName { value_token: HTML_LITERAL@33..37 "div" [] [Whitespace(" ")], }, HtmlBogus { items: [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@37..42 "class" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -111,7 +111,7 @@ HtmlRoot { HtmlClosingElement { l_angle_token: L_ANGLE@49..50 "<" [] [], slash_token: SLASH@50..51 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@51..54 "div" [] [], }, r_angle_token: R_ANGLE@54..55 ">" [] [], @@ -122,7 +122,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@55..57 "<" [Newline("\n")] [], slash_token: SLASH@57..58 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@58..61 "div" [] [], }, r_angle_token: R_ANGLE@61..62 ">" [] [], @@ -143,7 +143,7 @@ HtmlRoot { 0: HTML_ELEMENT@0..62 0: HTML_OPENING_ELEMENT@0..5 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..4 + 1: HTML_TAG_NAME@1..4 0: HTML_LITERAL@1..4 "div" [] [] 2: HTML_ATTRIBUTE_LIST@4..4 3: R_ANGLE@4..5 ">" [] [] @@ -151,11 +151,11 @@ HtmlRoot { 0: HTML_BOGUS_ELEMENT@5..30 0: HTML_BOGUS@5..21 0: L_ANGLE@5..8 "<" [Newline("\n"), Whitespace("\t")] [] - 1: HTML_NAME@8..12 + 1: HTML_TAG_NAME@8..12 0: HTML_LITERAL@8..12 "div" [] [Whitespace(" ")] 2: HTML_BOGUS@12..20 0: HTML_ATTRIBUTE@12..18 - 0: HTML_NAME@12..17 + 0: HTML_ATTRIBUTE_NAME@12..17 0: HTML_LITERAL@12..17 "class" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@17..18 0: EQ@17..18 "=" [] [] @@ -169,17 +169,17 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@24..30 0: L_ANGLE@24..25 "<" [] [] 1: SLASH@25..26 "/" [] [] - 2: HTML_NAME@26..29 + 2: HTML_TAG_NAME@26..29 0: HTML_LITERAL@26..29 "div" [] [] 3: R_ANGLE@29..30 ">" [] [] 1: HTML_BOGUS_ELEMENT@30..55 0: HTML_BOGUS@30..46 0: L_ANGLE@30..33 "<" [Newline("\n"), Whitespace("\t")] [] - 1: HTML_NAME@33..37 + 1: HTML_TAG_NAME@33..37 0: HTML_LITERAL@33..37 "div" [] [Whitespace(" ")] 2: HTML_BOGUS@37..45 0: HTML_ATTRIBUTE@37..43 - 0: HTML_NAME@37..42 + 0: HTML_ATTRIBUTE_NAME@37..42 0: HTML_LITERAL@37..42 "class" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@42..43 0: EQ@42..43 "=" [] [] @@ -193,13 +193,13 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@49..55 0: L_ANGLE@49..50 "<" [] [] 1: SLASH@50..51 "/" [] [] - 2: HTML_NAME@51..54 + 2: HTML_TAG_NAME@51..54 0: HTML_LITERAL@51..54 "div" [] [] 3: R_ANGLE@54..55 ">" [] [] 2: HTML_CLOSING_ELEMENT@55..62 0: L_ANGLE@55..57 "<" [Newline("\n")] [] 1: SLASH@57..58 "/" [] [] - 2: HTML_NAME@58..61 + 2: HTML_TAG_NAME@58..61 0: HTML_LITERAL@58..61 "div" [] [] 3: R_ANGLE@61..62 ">" [] [] 3: EOF@62..63 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/error/attributes/invalid-unquoted-value2.html.snap b/crates/biome_html_parser/tests/html_specs/error/attributes/invalid-unquoted-value2.html.snap index b243c4217a64..ac24ac9c713f 100644 --- a/crates/biome_html_parser/tests/html_specs/error/attributes/invalid-unquoted-value2.html.snap +++ b/crates/biome_html_parser/tests/html_specs/error/attributes/invalid-unquoted-value2.html.snap @@ -23,7 +23,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..4 "div" [] [], }, attributes: HtmlAttributeList [], @@ -35,13 +35,13 @@ HtmlRoot { HtmlBogus { items: [ L_ANGLE@5..8 "<" [Newline("\n"), Whitespace("\t")] [], - HtmlName { + HtmlTagName { value_token: HTML_LITERAL@8..12 "div" [] [Whitespace(" ")], }, HtmlBogus { items: [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@12..17 "class" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -68,7 +68,7 @@ HtmlRoot { HtmlClosingElement { l_angle_token: L_ANGLE@30..31 "<" [] [], slash_token: SLASH@31..32 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@32..35 "div" [] [], }, r_angle_token: R_ANGLE@35..36 ">" [] [], @@ -80,13 +80,13 @@ HtmlRoot { HtmlBogus { items: [ L_ANGLE@36..39 "<" [Newline("\n"), Whitespace("\t")] [], - HtmlName { + HtmlTagName { value_token: HTML_LITERAL@39..43 "div" [] [Whitespace(" ")], }, HtmlBogus { items: [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@43..48 "class" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -113,7 +113,7 @@ HtmlRoot { HtmlClosingElement { l_angle_token: L_ANGLE@61..62 "<" [] [], slash_token: SLASH@62..63 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@63..66 "div" [] [], }, r_angle_token: R_ANGLE@66..67 ">" [] [], @@ -124,7 +124,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@67..69 "<" [Newline("\n")] [], slash_token: SLASH@69..70 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@70..73 "div" [] [], }, r_angle_token: R_ANGLE@73..74 ">" [] [], @@ -145,7 +145,7 @@ HtmlRoot { 0: HTML_ELEMENT@0..74 0: HTML_OPENING_ELEMENT@0..5 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..4 + 1: HTML_TAG_NAME@1..4 0: HTML_LITERAL@1..4 "div" [] [] 2: HTML_ATTRIBUTE_LIST@4..4 3: R_ANGLE@4..5 ">" [] [] @@ -153,11 +153,11 @@ HtmlRoot { 0: HTML_BOGUS_ELEMENT@5..36 0: HTML_BOGUS@5..27 0: L_ANGLE@5..8 "<" [Newline("\n"), Whitespace("\t")] [] - 1: HTML_NAME@8..12 + 1: HTML_TAG_NAME@8..12 0: HTML_LITERAL@8..12 "div" [] [Whitespace(" ")] 2: HTML_BOGUS@12..26 0: HTML_ATTRIBUTE@12..18 - 0: HTML_NAME@12..17 + 0: HTML_ATTRIBUTE_NAME@12..17 0: HTML_LITERAL@12..17 "class" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@17..18 0: EQ@17..18 "=" [] [] @@ -172,17 +172,17 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@30..36 0: L_ANGLE@30..31 "<" [] [] 1: SLASH@31..32 "/" [] [] - 2: HTML_NAME@32..35 + 2: HTML_TAG_NAME@32..35 0: HTML_LITERAL@32..35 "div" [] [] 3: R_ANGLE@35..36 ">" [] [] 1: HTML_BOGUS_ELEMENT@36..67 0: HTML_BOGUS@36..58 0: L_ANGLE@36..39 "<" [Newline("\n"), Whitespace("\t")] [] - 1: HTML_NAME@39..43 + 1: HTML_TAG_NAME@39..43 0: HTML_LITERAL@39..43 "div" [] [Whitespace(" ")] 2: HTML_BOGUS@43..57 0: HTML_ATTRIBUTE@43..49 - 0: HTML_NAME@43..48 + 0: HTML_ATTRIBUTE_NAME@43..48 0: HTML_LITERAL@43..48 "class" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@48..49 0: EQ@48..49 "=" [] [] @@ -197,13 +197,13 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@61..67 0: L_ANGLE@61..62 "<" [] [] 1: SLASH@62..63 "/" [] [] - 2: HTML_NAME@63..66 + 2: HTML_TAG_NAME@63..66 0: HTML_LITERAL@63..66 "div" [] [] 3: R_ANGLE@66..67 ">" [] [] 2: HTML_CLOSING_ELEMENT@67..74 0: L_ANGLE@67..69 "<" [Newline("\n")] [] 1: SLASH@69..70 "/" [] [] - 2: HTML_NAME@70..73 + 2: HTML_TAG_NAME@70..73 0: HTML_LITERAL@70..73 "div" [] [] 3: R_ANGLE@73..74 ">" [] [] 3: EOF@74..75 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/error/attributes/missing-initializer.html.snap b/crates/biome_html_parser/tests/html_specs/error/attributes/missing-initializer.html.snap index 192afd7f4afd..97e9c22c6085 100644 --- a/crates/biome_html_parser/tests/html_specs/error/attributes/missing-initializer.html.snap +++ b/crates/biome_html_parser/tests/html_specs/error/attributes/missing-initializer.html.snap @@ -20,12 +20,12 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..5 "div" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@5..10 "class" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -40,7 +40,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@12..13 "<" [] [], slash_token: SLASH@13..14 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@14..17 "div" [] [], }, r_angle_token: R_ANGLE@17..18 ">" [] [], @@ -61,11 +61,11 @@ HtmlRoot { 0: HTML_ELEMENT@0..18 0: HTML_OPENING_ELEMENT@0..12 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..5 + 1: HTML_TAG_NAME@1..5 0: HTML_LITERAL@1..5 "div" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@5..11 0: HTML_ATTRIBUTE@5..11 - 0: HTML_NAME@5..10 + 0: HTML_ATTRIBUTE_NAME@5..10 0: HTML_LITERAL@5..10 "class" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@10..11 0: EQ@10..11 "=" [] [] @@ -75,7 +75,7 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@12..18 0: L_ANGLE@12..13 "<" [] [] 1: SLASH@13..14 "/" [] [] - 2: HTML_NAME@14..17 + 2: HTML_TAG_NAME@14..17 0: HTML_LITERAL@14..17 "div" [] [] 3: R_ANGLE@17..18 ">" [] [] 3: EOF@18..19 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/error/element/br-with-end.html.snap b/crates/biome_html_parser/tests/html_specs/error/element/br-with-end.html.snap index 9aad26eefddb..a47381d95150 100644 --- a/crates/biome_html_parser/tests/html_specs/error/element/br-with-end.html.snap +++ b/crates/biome_html_parser/tests/html_specs/error/element/br-with-end.html.snap @@ -21,7 +21,7 @@ HtmlRoot { items: [ HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..5 "span" [] [], }, attributes: HtmlAttributeList [], @@ -33,7 +33,7 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@9..10 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@10..12 "br" [] [], }, attributes: HtmlAttributeList [], @@ -48,7 +48,7 @@ HtmlRoot { items: [ L_ANGLE@36..37 "<" [] [], SLASH@37..38 "/" [] [], - HtmlName { + HtmlTagName { value_token: HTML_LITERAL@38..40 "br" [] [], }, R_ANGLE@40..41 ">" [] [], @@ -62,7 +62,7 @@ HtmlRoot { HtmlClosingElement { l_angle_token: L_ANGLE@44..45 "<" [] [], slash_token: SLASH@45..46 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@46..50 "span" [] [], }, r_angle_token: R_ANGLE@50..51 ">" [] [], @@ -84,7 +84,7 @@ HtmlRoot { 0: HTML_BOGUS_ELEMENT@0..51 0: HTML_OPENING_ELEMENT@0..6 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..5 + 1: HTML_TAG_NAME@1..5 0: HTML_LITERAL@1..5 "span" [] [] 2: HTML_ATTRIBUTE_LIST@5..5 3: R_ANGLE@5..6 ">" [] [] @@ -93,7 +93,7 @@ HtmlRoot { 0: HTML_LITERAL@6..9 "foo" [] [] 1: HTML_SELF_CLOSING_ELEMENT@9..13 0: L_ANGLE@9..10 "<" [] [] - 1: HTML_NAME@10..12 + 1: HTML_TAG_NAME@10..12 0: HTML_LITERAL@10..12 "br" [] [] 2: HTML_ATTRIBUTE_LIST@12..12 3: (empty) @@ -103,7 +103,7 @@ HtmlRoot { 2: HTML_BOGUS_ELEMENT@36..41 0: L_ANGLE@36..37 "<" [] [] 1: SLASH@37..38 "/" [] [] - 2: HTML_NAME@38..40 + 2: HTML_TAG_NAME@38..40 0: HTML_LITERAL@38..40 "br" [] [] 3: R_ANGLE@40..41 ">" [] [] 3: HTML_ELEMENT_LIST@41..44 @@ -112,7 +112,7 @@ HtmlRoot { 4: HTML_CLOSING_ELEMENT@44..51 0: L_ANGLE@44..45 "<" [] [] 1: SLASH@45..46 "/" [] [] - 2: HTML_NAME@46..50 + 2: HTML_TAG_NAME@46..50 0: HTML_LITERAL@46..50 "span" [] [] 3: R_ANGLE@50..51 ">" [] [] 3: EOF@51..52 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/error/element/child-no-tag-name.html.snap b/crates/biome_html_parser/tests/html_specs/error/element/child-no-tag-name.html.snap index 5b919bdcd96e..4d8299b90a11 100644 --- a/crates/biome_html_parser/tests/html_specs/error/element/child-no-tag-name.html.snap +++ b/crates/biome_html_parser/tests/html_specs/error/element/child-no-tag-name.html.snap @@ -20,7 +20,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..4 "div" [] [], }, attributes: HtmlAttributeList [], @@ -34,7 +34,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@6..7 "<" [] [], slash_token: SLASH@7..8 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@8..11 "div" [] [], }, r_angle_token: R_ANGLE@11..12 ">" [] [], @@ -55,7 +55,7 @@ HtmlRoot { 0: HTML_ELEMENT@0..12 0: HTML_OPENING_ELEMENT@0..5 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..4 + 1: HTML_TAG_NAME@1..4 0: HTML_LITERAL@1..4 "div" [] [] 2: HTML_ATTRIBUTE_LIST@4..4 3: R_ANGLE@4..5 ">" [] [] @@ -65,7 +65,7 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@6..12 0: L_ANGLE@6..7 "<" [] [] 1: SLASH@7..8 "/" [] [] - 2: HTML_NAME@8..11 + 2: HTML_TAG_NAME@8..11 0: HTML_LITERAL@8..11 "div" [] [] 3: R_ANGLE@11..12 ">" [] [] 3: EOF@12..13 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/error/element/missing-close-tag-2.html.snap b/crates/biome_html_parser/tests/html_specs/error/element/missing-close-tag-2.html.snap index 1eecf30e88bd..563e27e477fa 100644 --- a/crates/biome_html_parser/tests/html_specs/error/element/missing-close-tag-2.html.snap +++ b/crates/biome_html_parser/tests/html_specs/error/element/missing-close-tag-2.html.snap @@ -20,7 +20,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..4 "div" [] [], }, attributes: HtmlAttributeList [], @@ -44,7 +44,7 @@ HtmlRoot { 0: HTML_ELEMENT@0..5 0: HTML_OPENING_ELEMENT@0..5 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..4 + 1: HTML_TAG_NAME@1..4 0: HTML_LITERAL@1..4 "div" [] [] 2: HTML_ATTRIBUTE_LIST@4..4 3: R_ANGLE@4..5 ">" [] [] diff --git a/crates/biome_html_parser/tests/html_specs/error/element/missing-close-tag.html.snap b/crates/biome_html_parser/tests/html_specs/error/element/missing-close-tag.html.snap index 59f2b4812b3e..9c93f96bc62d 100644 --- a/crates/biome_html_parser/tests/html_specs/error/element/missing-close-tag.html.snap +++ b/crates/biome_html_parser/tests/html_specs/error/element/missing-close-tag.html.snap @@ -20,7 +20,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..4 "div" [] [], }, attributes: HtmlAttributeList [], @@ -48,7 +48,7 @@ HtmlRoot { 0: HTML_ELEMENT@0..8 0: HTML_OPENING_ELEMENT@0..5 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..4 + 1: HTML_TAG_NAME@1..4 0: HTML_LITERAL@1..4 "div" [] [] 2: HTML_ATTRIBUTE_LIST@4..4 3: R_ANGLE@4..5 ">" [] [] diff --git a/crates/biome_html_parser/tests/html_specs/ok/attributes/attributes-unquoted.html.snap b/crates/biome_html_parser/tests/html_specs/ok/attributes/attributes-unquoted.html.snap index 9bb27775b176..954094e1ec8c 100644 --- a/crates/biome_html_parser/tests/html_specs/ok/attributes/attributes-unquoted.html.snap +++ b/crates/biome_html_parser/tests/html_specs/ok/attributes/attributes-unquoted.html.snap @@ -30,7 +30,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..4 "div" [] [], }, attributes: HtmlAttributeList [], @@ -40,12 +40,12 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@5..8 "<" [Newline("\n"), Whitespace("\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@8..12 "div" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@12..16 "data" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -66,7 +66,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@24..25 "<" [] [], slash_token: SLASH@25..26 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@26..29 "div" [] [], }, r_angle_token: R_ANGLE@29..30 ">" [] [], @@ -75,12 +75,12 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@30..33 "<" [Newline("\n"), Whitespace("\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@33..37 "div" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@37..41 "data" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -101,7 +101,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@50..51 "<" [] [], slash_token: SLASH@51..52 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@52..55 "div" [] [], }, r_angle_token: R_ANGLE@55..56 ">" [] [], @@ -110,12 +110,12 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@56..59 "<" [Newline("\n"), Whitespace("\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@59..63 "div" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@63..68 "data" [] [Whitespace(" ")], }, initializer: HtmlAttributeInitializerClause { @@ -136,7 +136,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@78..79 "<" [] [], slash_token: SLASH@79..80 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@80..83 "div" [] [], }, r_angle_token: R_ANGLE@83..84 ">" [] [], @@ -145,12 +145,12 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@84..87 "<" [Newline("\n"), Whitespace("\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@87..91 "div" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@91..95 "data" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -171,7 +171,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@105..106 "<" [] [], slash_token: SLASH@106..107 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@107..110 "div" [] [], }, r_angle_token: R_ANGLE@110..111 ">" [] [], @@ -180,12 +180,12 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@111..114 "<" [Newline("\n"), Whitespace("\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@114..118 "div" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@118..122 "data" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -206,7 +206,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@132..133 "<" [] [], slash_token: SLASH@133..134 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@134..137 "div" [] [], }, r_angle_token: R_ANGLE@137..138 ">" [] [], @@ -215,12 +215,12 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@138..141 "<" [Newline("\n"), Whitespace("\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@141..145 "div" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@145..149 "data" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -241,7 +241,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@158..159 "<" [] [], slash_token: SLASH@159..160 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@160..163 "div" [] [], }, r_angle_token: R_ANGLE@163..164 ">" [] [], @@ -249,12 +249,12 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@164..167 "<" [Newline("\n"), Whitespace("\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@167..171 "img" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@171..175 "data" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -270,12 +270,12 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@181..184 "<" [Newline("\n"), Whitespace("\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@184..188 "img" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@188..192 "data" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -293,7 +293,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@199..201 "<" [Newline("\n")] [], slash_token: SLASH@201..202 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@202..205 "div" [] [], }, r_angle_token: R_ANGLE@205..206 ">" [] [], @@ -314,7 +314,7 @@ HtmlRoot { 0: HTML_ELEMENT@0..206 0: HTML_OPENING_ELEMENT@0..5 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..4 + 1: HTML_TAG_NAME@1..4 0: HTML_LITERAL@1..4 "div" [] [] 2: HTML_ATTRIBUTE_LIST@4..4 3: R_ANGLE@4..5 ">" [] [] @@ -322,11 +322,11 @@ HtmlRoot { 0: HTML_ELEMENT@5..30 0: HTML_OPENING_ELEMENT@5..21 0: L_ANGLE@5..8 "<" [Newline("\n"), Whitespace("\t")] [] - 1: HTML_NAME@8..12 + 1: HTML_TAG_NAME@8..12 0: HTML_LITERAL@8..12 "div" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@12..20 0: HTML_ATTRIBUTE@12..20 - 0: HTML_NAME@12..16 + 0: HTML_ATTRIBUTE_NAME@12..16 0: HTML_LITERAL@12..16 "data" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@16..20 0: EQ@16..17 "=" [] [] @@ -339,17 +339,17 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@24..30 0: L_ANGLE@24..25 "<" [] [] 1: SLASH@25..26 "/" [] [] - 2: HTML_NAME@26..29 + 2: HTML_TAG_NAME@26..29 0: HTML_LITERAL@26..29 "div" [] [] 3: R_ANGLE@29..30 ">" [] [] 1: HTML_ELEMENT@30..56 0: HTML_OPENING_ELEMENT@30..47 0: L_ANGLE@30..33 "<" [Newline("\n"), Whitespace("\t")] [] - 1: HTML_NAME@33..37 + 1: HTML_TAG_NAME@33..37 0: HTML_LITERAL@33..37 "div" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@37..46 0: HTML_ATTRIBUTE@37..46 - 0: HTML_NAME@37..41 + 0: HTML_ATTRIBUTE_NAME@37..41 0: HTML_LITERAL@37..41 "data" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@41..46 0: EQ@41..42 "=" [] [] @@ -362,17 +362,17 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@50..56 0: L_ANGLE@50..51 "<" [] [] 1: SLASH@51..52 "/" [] [] - 2: HTML_NAME@52..55 + 2: HTML_TAG_NAME@52..55 0: HTML_LITERAL@52..55 "div" [] [] 3: R_ANGLE@55..56 ">" [] [] 2: HTML_ELEMENT@56..84 0: HTML_OPENING_ELEMENT@56..75 0: L_ANGLE@56..59 "<" [Newline("\n"), Whitespace("\t")] [] - 1: HTML_NAME@59..63 + 1: HTML_TAG_NAME@59..63 0: HTML_LITERAL@59..63 "div" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@63..74 0: HTML_ATTRIBUTE@63..74 - 0: HTML_NAME@63..68 + 0: HTML_ATTRIBUTE_NAME@63..68 0: HTML_LITERAL@63..68 "data" [] [Whitespace(" ")] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@68..74 0: EQ@68..70 "=" [] [Whitespace(" ")] @@ -385,17 +385,17 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@78..84 0: L_ANGLE@78..79 "<" [] [] 1: SLASH@79..80 "/" [] [] - 2: HTML_NAME@80..83 + 2: HTML_TAG_NAME@80..83 0: HTML_LITERAL@80..83 "div" [] [] 3: R_ANGLE@83..84 ">" [] [] 3: HTML_ELEMENT@84..111 0: HTML_OPENING_ELEMENT@84..102 0: L_ANGLE@84..87 "<" [Newline("\n"), Whitespace("\t")] [] - 1: HTML_NAME@87..91 + 1: HTML_TAG_NAME@87..91 0: HTML_LITERAL@87..91 "div" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@91..101 0: HTML_ATTRIBUTE@91..101 - 0: HTML_NAME@91..95 + 0: HTML_ATTRIBUTE_NAME@91..95 0: HTML_LITERAL@91..95 "data" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@95..101 0: EQ@95..97 "=" [] [Whitespace("\t")] @@ -408,17 +408,17 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@105..111 0: L_ANGLE@105..106 "<" [] [] 1: SLASH@106..107 "/" [] [] - 2: HTML_NAME@107..110 + 2: HTML_TAG_NAME@107..110 0: HTML_LITERAL@107..110 "div" [] [] 3: R_ANGLE@110..111 ">" [] [] 4: HTML_ELEMENT@111..138 0: HTML_OPENING_ELEMENT@111..129 0: L_ANGLE@111..114 "<" [Newline("\n"), Whitespace("\t")] [] - 1: HTML_NAME@114..118 + 1: HTML_TAG_NAME@114..118 0: HTML_LITERAL@114..118 "div" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@118..128 0: HTML_ATTRIBUTE@118..128 - 0: HTML_NAME@118..122 + 0: HTML_ATTRIBUTE_NAME@118..122 0: HTML_LITERAL@118..122 "data" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@122..128 0: EQ@122..124 "=" [] [Whitespace("\t")] @@ -431,17 +431,17 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@132..138 0: L_ANGLE@132..133 "<" [] [] 1: SLASH@133..134 "/" [] [] - 2: HTML_NAME@134..137 + 2: HTML_TAG_NAME@134..137 0: HTML_LITERAL@134..137 "div" [] [] 3: R_ANGLE@137..138 ">" [] [] 5: HTML_ELEMENT@138..164 0: HTML_OPENING_ELEMENT@138..155 0: L_ANGLE@138..141 "<" [Newline("\n"), Whitespace("\t")] [] - 1: HTML_NAME@141..145 + 1: HTML_TAG_NAME@141..145 0: HTML_LITERAL@141..145 "div" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@145..154 0: HTML_ATTRIBUTE@145..154 - 0: HTML_NAME@145..149 + 0: HTML_ATTRIBUTE_NAME@145..149 0: HTML_LITERAL@145..149 "data" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@149..154 0: EQ@149..150 "=" [] [] @@ -454,16 +454,16 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@158..164 0: L_ANGLE@158..159 "<" [] [] 1: SLASH@159..160 "/" [] [] - 2: HTML_NAME@160..163 + 2: HTML_TAG_NAME@160..163 0: HTML_LITERAL@160..163 "div" [] [] 3: R_ANGLE@163..164 ">" [] [] 6: HTML_SELF_CLOSING_ELEMENT@164..181 0: L_ANGLE@164..167 "<" [Newline("\n"), Whitespace("\t")] [] - 1: HTML_NAME@167..171 + 1: HTML_TAG_NAME@167..171 0: HTML_LITERAL@167..171 "img" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@171..180 0: HTML_ATTRIBUTE@171..180 - 0: HTML_NAME@171..175 + 0: HTML_ATTRIBUTE_NAME@171..175 0: HTML_LITERAL@171..175 "data" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@175..180 0: EQ@175..176 "=" [] [] @@ -473,11 +473,11 @@ HtmlRoot { 4: R_ANGLE@180..181 ">" [] [] 7: HTML_SELF_CLOSING_ELEMENT@181..199 0: L_ANGLE@181..184 "<" [Newline("\n"), Whitespace("\t")] [] - 1: HTML_NAME@184..188 + 1: HTML_TAG_NAME@184..188 0: HTML_LITERAL@184..188 "img" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@188..197 0: HTML_ATTRIBUTE@188..197 - 0: HTML_NAME@188..192 + 0: HTML_ATTRIBUTE_NAME@188..192 0: HTML_LITERAL@188..192 "data" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@192..197 0: EQ@192..193 "=" [] [] @@ -488,7 +488,7 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@199..206 0: L_ANGLE@199..201 "<" [Newline("\n")] [] 1: SLASH@201..202 "/" [] [] - 2: HTML_NAME@202..205 + 2: HTML_TAG_NAME@202..205 0: HTML_LITERAL@202..205 "div" [] [] 3: R_ANGLE@205..206 ">" [] [] 3: EOF@206..207 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/ok/attributes/attributes.html.snap b/crates/biome_html_parser/tests/html_specs/ok/attributes/attributes.html.snap index 88a615b97fc5..421d37610d70 100644 --- a/crates/biome_html_parser/tests/html_specs/ok/attributes/attributes.html.snap +++ b/crates/biome_html_parser/tests/html_specs/ok/attributes/attributes.html.snap @@ -19,12 +19,12 @@ HtmlRoot { html: HtmlElementList [ HtmlSelfClosingElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..5 "img" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@5..8 "src" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -52,11 +52,11 @@ HtmlRoot { 2: HTML_ELEMENT_LIST@0..22 0: HTML_SELF_CLOSING_ELEMENT@0..22 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..5 + 1: HTML_TAG_NAME@1..5 0: HTML_LITERAL@1..5 "img" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@5..20 0: HTML_ATTRIBUTE@5..20 - 0: HTML_NAME@5..8 + 0: HTML_ATTRIBUTE_NAME@5..8 0: HTML_LITERAL@5..8 "src" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@8..20 0: EQ@8..9 "=" [] [] diff --git a/crates/biome_html_parser/tests/html_specs/ok/attributes/multiline-attribute-value.html.snap b/crates/biome_html_parser/tests/html_specs/ok/attributes/multiline-attribute-value.html.snap index 5f1ba8199bca..71c53f81a8bb 100644 --- a/crates/biome_html_parser/tests/html_specs/ok/attributes/multiline-attribute-value.html.snap +++ b/crates/biome_html_parser/tests/html_specs/ok/attributes/multiline-attribute-value.html.snap @@ -21,12 +21,12 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..5 "div" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@5..10 "class" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -47,7 +47,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@28..29 "<" [] [], slash_token: SLASH@29..30 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@30..33 "div" [] [], }, r_angle_token: R_ANGLE@33..34 ">" [] [], @@ -68,11 +68,11 @@ HtmlRoot { 0: HTML_ELEMENT@0..34 0: HTML_OPENING_ELEMENT@0..25 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..5 + 1: HTML_TAG_NAME@1..5 0: HTML_LITERAL@1..5 "div" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@5..24 0: HTML_ATTRIBUTE@5..24 - 0: HTML_NAME@5..10 + 0: HTML_ATTRIBUTE_NAME@5..10 0: HTML_LITERAL@5..10 "class" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@10..24 0: EQ@10..11 "=" [] [] @@ -85,7 +85,7 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@28..34 0: L_ANGLE@28..29 "<" [] [] 1: SLASH@29..30 "/" [] [] - 2: HTML_NAME@30..33 + 2: HTML_TAG_NAME@30..33 0: HTML_LITERAL@30..33 "div" [] [] 3: R_ANGLE@33..34 ">" [] [] 3: EOF@34..35 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/ok/attributes/multiline-attributes.html.snap b/crates/biome_html_parser/tests/html_specs/ok/attributes/multiline-attributes.html.snap index 7bce2aa95f60..f03fe7cc0a74 100644 --- a/crates/biome_html_parser/tests/html_specs/ok/attributes/multiline-attributes.html.snap +++ b/crates/biome_html_parser/tests/html_specs/ok/attributes/multiline-attributes.html.snap @@ -25,12 +25,12 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..4 "div" [] [], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@4..11 "class" [Newline("\n"), Whitespace("\t")] [], }, initializer: HtmlAttributeInitializerClause { @@ -41,7 +41,7 @@ HtmlRoot { }, }, HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@17..23 "role" [Newline("\n"), Whitespace("\t")] [], }, initializer: HtmlAttributeInitializerClause { @@ -62,7 +62,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@39..41 "<" [Newline("\n")] [], slash_token: SLASH@41..42 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@42..45 "div" [] [], }, r_angle_token: R_ANGLE@45..46 ">" [] [], @@ -83,18 +83,18 @@ HtmlRoot { 0: HTML_ELEMENT@0..46 0: HTML_OPENING_ELEMENT@0..34 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..4 + 1: HTML_TAG_NAME@1..4 0: HTML_LITERAL@1..4 "div" [] [] 2: HTML_ATTRIBUTE_LIST@4..32 0: HTML_ATTRIBUTE@4..17 - 0: HTML_NAME@4..11 + 0: HTML_ATTRIBUTE_NAME@4..11 0: HTML_LITERAL@4..11 "class" [Newline("\n"), Whitespace("\t")] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@11..17 0: EQ@11..12 "=" [] [] 1: HTML_STRING@12..17 0: HTML_STRING_LITERAL@12..17 "\"foo\"" [] [] 1: HTML_ATTRIBUTE@17..32 - 0: HTML_NAME@17..23 + 0: HTML_ATTRIBUTE_NAME@17..23 0: HTML_LITERAL@17..23 "role" [Newline("\n"), Whitespace("\t")] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@23..32 0: EQ@23..24 "=" [] [] @@ -107,7 +107,7 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@39..46 0: L_ANGLE@39..41 "<" [Newline("\n")] [] 1: SLASH@41..42 "/" [] [] - 2: HTML_NAME@42..45 + 2: HTML_TAG_NAME@42..45 0: HTML_LITERAL@42..45 "div" [] [] 3: R_ANGLE@45..46 ">" [] [] 3: EOF@46..47 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/ok/element.html.snap b/crates/biome_html_parser/tests/html_specs/ok/element.html.snap index d6d862c58218..7538917c5a7e 100644 --- a/crates/biome_html_parser/tests/html_specs/ok/element.html.snap +++ b/crates/biome_html_parser/tests/html_specs/ok/element.html.snap @@ -19,7 +19,7 @@ HtmlRoot { html: HtmlElementList [ HtmlSelfClosingElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..4 "div" [] [], }, attributes: HtmlAttributeList [], @@ -40,7 +40,7 @@ HtmlRoot { 2: HTML_ELEMENT_LIST@0..6 0: HTML_SELF_CLOSING_ELEMENT@0..6 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..4 + 1: HTML_TAG_NAME@1..4 0: HTML_LITERAL@1..4 "div" [] [] 2: HTML_ATTRIBUTE_LIST@4..4 3: SLASH@4..5 "/" [] [] diff --git a/crates/biome_html_parser/tests/html_specs/ok/element_list.html.snap b/crates/biome_html_parser/tests/html_specs/ok/element_list.html.snap index b800f844b075..fb5ebdcb6419 100644 --- a/crates/biome_html_parser/tests/html_specs/ok/element_list.html.snap +++ b/crates/biome_html_parser/tests/html_specs/ok/element_list.html.snap @@ -42,7 +42,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..4 "div" [] [], }, attributes: HtmlAttributeList [], @@ -52,7 +52,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@5..8 "<" [Newline("\n"), Whitespace("\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@8..11 "div" [] [], }, attributes: HtmlAttributeList [], @@ -65,7 +65,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@24..28 "<" [Newline("\n"), Whitespace("\t\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@28..31 "div" [] [], }, attributes: HtmlAttributeList [], @@ -75,7 +75,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@32..33 "<" [] [], slash_token: SLASH@33..34 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@34..37 "div" [] [], }, r_angle_token: R_ANGLE@37..38 ">" [] [], @@ -87,7 +87,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@50..54 "<" [Newline("\n"), Whitespace("\t\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@54..57 "div" [] [], }, attributes: HtmlAttributeList [], @@ -97,7 +97,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@58..59 "<" [] [], slash_token: SLASH@59..60 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@60..63 "div" [] [], }, r_angle_token: R_ANGLE@63..64 ">" [] [], @@ -106,7 +106,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@64..68 "<" [Newline("\n"), Whitespace("\t\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@68..71 "div" [] [], }, attributes: HtmlAttributeList [], @@ -116,7 +116,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@72..73 "<" [] [], slash_token: SLASH@73..74 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@74..77 "div" [] [], }, r_angle_token: R_ANGLE@77..78 ">" [] [], @@ -125,7 +125,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@78..82 "<" [Newline("\n"), Whitespace("\t\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@82..85 "div" [] [], }, attributes: HtmlAttributeList [], @@ -135,7 +135,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@86..87 "<" [] [], slash_token: SLASH@87..88 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@88..91 "div" [] [], }, r_angle_token: R_ANGLE@91..92 ">" [] [], @@ -144,7 +144,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@92..96 "<" [Newline("\n"), Whitespace("\t\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@96..99 "div" [] [], }, attributes: HtmlAttributeList [], @@ -156,12 +156,12 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@113..118 "<" [Newline("\n"), Whitespace("\t\t\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@118..122 "img" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@122..125 "src" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -177,12 +177,12 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@146..151 "<" [Newline("\n"), Whitespace("\t\t\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@151..155 "img" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@155..158 "src" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -198,12 +198,12 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@179..184 "<" [Newline("\n"), Whitespace("\t\t\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@184..188 "img" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@188..191 "src" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -219,12 +219,12 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@212..217 "<" [Newline("\n"), Whitespace("\t\t\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@217..221 "img" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@221..224 "src" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -241,7 +241,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@245..250 "<" [Newline("\n"), Whitespace("\t\t\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@250..253 "div" [] [], }, attributes: HtmlAttributeList [], @@ -250,12 +250,12 @@ HtmlRoot { children: HtmlElementList [ HtmlSelfClosingElement { l_angle_token: L_ANGLE@254..260 "<" [Newline("\n"), Whitespace("\t\t\t\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@260..264 "img" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@264..267 "src" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -271,12 +271,12 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@288..294 "<" [Newline("\n"), Whitespace("\t\t\t\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@294..298 "img" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@298..301 "src" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -292,12 +292,12 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@322..328 "<" [Newline("\n"), Whitespace("\t\t\t\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@328..332 "img" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@332..335 "src" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -313,12 +313,12 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@356..362 "<" [Newline("\n"), Whitespace("\t\t\t\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@362..366 "img" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@366..369 "src" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -336,7 +336,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@390..395 "<" [Newline("\n"), Whitespace("\t\t\t")] [], slash_token: SLASH@395..396 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@396..399 "div" [] [], }, r_angle_token: R_ANGLE@399..400 ">" [] [], @@ -346,7 +346,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@400..404 "<" [Newline("\n"), Whitespace("\t\t")] [], slash_token: SLASH@404..405 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@405..408 "div" [] [], }, r_angle_token: R_ANGLE@408..409 ">" [] [], @@ -356,7 +356,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@409..412 "<" [Newline("\n"), Whitespace("\t")] [], slash_token: SLASH@412..413 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@413..416 "div" [] [], }, r_angle_token: R_ANGLE@416..417 ">" [] [], @@ -366,7 +366,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@417..419 "<" [Newline("\n")] [], slash_token: SLASH@419..420 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@420..423 "div" [] [], }, r_angle_token: R_ANGLE@423..424 ">" [] [], @@ -387,7 +387,7 @@ HtmlRoot { 0: HTML_ELEMENT@0..424 0: HTML_OPENING_ELEMENT@0..5 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..4 + 1: HTML_TAG_NAME@1..4 0: HTML_LITERAL@1..4 "div" [] [] 2: HTML_ATTRIBUTE_LIST@4..4 3: R_ANGLE@4..5 ">" [] [] @@ -395,7 +395,7 @@ HtmlRoot { 0: HTML_ELEMENT@5..417 0: HTML_OPENING_ELEMENT@5..12 0: L_ANGLE@5..8 "<" [Newline("\n"), Whitespace("\t")] [] - 1: HTML_NAME@8..11 + 1: HTML_TAG_NAME@8..11 0: HTML_LITERAL@8..11 "div" [] [] 2: HTML_ATTRIBUTE_LIST@11..11 3: R_ANGLE@11..12 ">" [] [] @@ -405,7 +405,7 @@ HtmlRoot { 1: HTML_ELEMENT@24..38 0: HTML_OPENING_ELEMENT@24..32 0: L_ANGLE@24..28 "<" [Newline("\n"), Whitespace("\t\t")] [] - 1: HTML_NAME@28..31 + 1: HTML_TAG_NAME@28..31 0: HTML_LITERAL@28..31 "div" [] [] 2: HTML_ATTRIBUTE_LIST@31..31 3: R_ANGLE@31..32 ">" [] [] @@ -413,7 +413,7 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@32..38 0: L_ANGLE@32..33 "<" [] [] 1: SLASH@33..34 "/" [] [] - 2: HTML_NAME@34..37 + 2: HTML_TAG_NAME@34..37 0: HTML_LITERAL@34..37 "div" [] [] 3: R_ANGLE@37..38 ">" [] [] 2: HTML_CONTENT@38..50 @@ -421,7 +421,7 @@ HtmlRoot { 3: HTML_ELEMENT@50..64 0: HTML_OPENING_ELEMENT@50..58 0: L_ANGLE@50..54 "<" [Newline("\n"), Whitespace("\t\t")] [] - 1: HTML_NAME@54..57 + 1: HTML_TAG_NAME@54..57 0: HTML_LITERAL@54..57 "div" [] [] 2: HTML_ATTRIBUTE_LIST@57..57 3: R_ANGLE@57..58 ">" [] [] @@ -429,13 +429,13 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@58..64 0: L_ANGLE@58..59 "<" [] [] 1: SLASH@59..60 "/" [] [] - 2: HTML_NAME@60..63 + 2: HTML_TAG_NAME@60..63 0: HTML_LITERAL@60..63 "div" [] [] 3: R_ANGLE@63..64 ">" [] [] 4: HTML_ELEMENT@64..78 0: HTML_OPENING_ELEMENT@64..72 0: L_ANGLE@64..68 "<" [Newline("\n"), Whitespace("\t\t")] [] - 1: HTML_NAME@68..71 + 1: HTML_TAG_NAME@68..71 0: HTML_LITERAL@68..71 "div" [] [] 2: HTML_ATTRIBUTE_LIST@71..71 3: R_ANGLE@71..72 ">" [] [] @@ -443,13 +443,13 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@72..78 0: L_ANGLE@72..73 "<" [] [] 1: SLASH@73..74 "/" [] [] - 2: HTML_NAME@74..77 + 2: HTML_TAG_NAME@74..77 0: HTML_LITERAL@74..77 "div" [] [] 3: R_ANGLE@77..78 ">" [] [] 5: HTML_ELEMENT@78..92 0: HTML_OPENING_ELEMENT@78..86 0: L_ANGLE@78..82 "<" [Newline("\n"), Whitespace("\t\t")] [] - 1: HTML_NAME@82..85 + 1: HTML_TAG_NAME@82..85 0: HTML_LITERAL@82..85 "div" [] [] 2: HTML_ATTRIBUTE_LIST@85..85 3: R_ANGLE@85..86 ">" [] [] @@ -457,13 +457,13 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@86..92 0: L_ANGLE@86..87 "<" [] [] 1: SLASH@87..88 "/" [] [] - 2: HTML_NAME@88..91 + 2: HTML_TAG_NAME@88..91 0: HTML_LITERAL@88..91 "div" [] [] 3: R_ANGLE@91..92 ">" [] [] 6: HTML_ELEMENT@92..409 0: HTML_OPENING_ELEMENT@92..100 0: L_ANGLE@92..96 "<" [Newline("\n"), Whitespace("\t\t")] [] - 1: HTML_NAME@96..99 + 1: HTML_TAG_NAME@96..99 0: HTML_LITERAL@96..99 "div" [] [] 2: HTML_ATTRIBUTE_LIST@99..99 3: R_ANGLE@99..100 ">" [] [] @@ -472,11 +472,11 @@ HtmlRoot { 0: HTML_LITERAL@100..113 "some text" [Newline("\n"), Whitespace("\t\t\t")] [] 1: HTML_SELF_CLOSING_ELEMENT@113..146 0: L_ANGLE@113..118 "<" [Newline("\n"), Whitespace("\t\t\t")] [] - 1: HTML_NAME@118..122 + 1: HTML_TAG_NAME@118..122 0: HTML_LITERAL@118..122 "img" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@122..144 0: HTML_ATTRIBUTE@122..144 - 0: HTML_NAME@122..125 + 0: HTML_ATTRIBUTE_NAME@122..125 0: HTML_LITERAL@122..125 "src" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@125..144 0: EQ@125..126 "=" [] [] @@ -486,11 +486,11 @@ HtmlRoot { 4: R_ANGLE@145..146 ">" [] [] 2: HTML_SELF_CLOSING_ELEMENT@146..179 0: L_ANGLE@146..151 "<" [Newline("\n"), Whitespace("\t\t\t")] [] - 1: HTML_NAME@151..155 + 1: HTML_TAG_NAME@151..155 0: HTML_LITERAL@151..155 "img" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@155..177 0: HTML_ATTRIBUTE@155..177 - 0: HTML_NAME@155..158 + 0: HTML_ATTRIBUTE_NAME@155..158 0: HTML_LITERAL@155..158 "src" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@158..177 0: EQ@158..159 "=" [] [] @@ -500,11 +500,11 @@ HtmlRoot { 4: R_ANGLE@178..179 ">" [] [] 3: HTML_SELF_CLOSING_ELEMENT@179..212 0: L_ANGLE@179..184 "<" [Newline("\n"), Whitespace("\t\t\t")] [] - 1: HTML_NAME@184..188 + 1: HTML_TAG_NAME@184..188 0: HTML_LITERAL@184..188 "img" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@188..210 0: HTML_ATTRIBUTE@188..210 - 0: HTML_NAME@188..191 + 0: HTML_ATTRIBUTE_NAME@188..191 0: HTML_LITERAL@188..191 "src" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@191..210 0: EQ@191..192 "=" [] [] @@ -514,11 +514,11 @@ HtmlRoot { 4: R_ANGLE@211..212 ">" [] [] 4: HTML_SELF_CLOSING_ELEMENT@212..245 0: L_ANGLE@212..217 "<" [Newline("\n"), Whitespace("\t\t\t")] [] - 1: HTML_NAME@217..221 + 1: HTML_TAG_NAME@217..221 0: HTML_LITERAL@217..221 "img" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@221..243 0: HTML_ATTRIBUTE@221..243 - 0: HTML_NAME@221..224 + 0: HTML_ATTRIBUTE_NAME@221..224 0: HTML_LITERAL@221..224 "src" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@224..243 0: EQ@224..225 "=" [] [] @@ -529,18 +529,18 @@ HtmlRoot { 5: HTML_ELEMENT@245..400 0: HTML_OPENING_ELEMENT@245..254 0: L_ANGLE@245..250 "<" [Newline("\n"), Whitespace("\t\t\t")] [] - 1: HTML_NAME@250..253 + 1: HTML_TAG_NAME@250..253 0: HTML_LITERAL@250..253 "div" [] [] 2: HTML_ATTRIBUTE_LIST@253..253 3: R_ANGLE@253..254 ">" [] [] 1: HTML_ELEMENT_LIST@254..390 0: HTML_SELF_CLOSING_ELEMENT@254..288 0: L_ANGLE@254..260 "<" [Newline("\n"), Whitespace("\t\t\t\t")] [] - 1: HTML_NAME@260..264 + 1: HTML_TAG_NAME@260..264 0: HTML_LITERAL@260..264 "img" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@264..286 0: HTML_ATTRIBUTE@264..286 - 0: HTML_NAME@264..267 + 0: HTML_ATTRIBUTE_NAME@264..267 0: HTML_LITERAL@264..267 "src" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@267..286 0: EQ@267..268 "=" [] [] @@ -550,11 +550,11 @@ HtmlRoot { 4: R_ANGLE@287..288 ">" [] [] 1: HTML_SELF_CLOSING_ELEMENT@288..322 0: L_ANGLE@288..294 "<" [Newline("\n"), Whitespace("\t\t\t\t")] [] - 1: HTML_NAME@294..298 + 1: HTML_TAG_NAME@294..298 0: HTML_LITERAL@294..298 "img" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@298..320 0: HTML_ATTRIBUTE@298..320 - 0: HTML_NAME@298..301 + 0: HTML_ATTRIBUTE_NAME@298..301 0: HTML_LITERAL@298..301 "src" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@301..320 0: EQ@301..302 "=" [] [] @@ -564,11 +564,11 @@ HtmlRoot { 4: R_ANGLE@321..322 ">" [] [] 2: HTML_SELF_CLOSING_ELEMENT@322..356 0: L_ANGLE@322..328 "<" [Newline("\n"), Whitespace("\t\t\t\t")] [] - 1: HTML_NAME@328..332 + 1: HTML_TAG_NAME@328..332 0: HTML_LITERAL@328..332 "img" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@332..354 0: HTML_ATTRIBUTE@332..354 - 0: HTML_NAME@332..335 + 0: HTML_ATTRIBUTE_NAME@332..335 0: HTML_LITERAL@332..335 "src" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@335..354 0: EQ@335..336 "=" [] [] @@ -578,11 +578,11 @@ HtmlRoot { 4: R_ANGLE@355..356 ">" [] [] 3: HTML_SELF_CLOSING_ELEMENT@356..390 0: L_ANGLE@356..362 "<" [Newline("\n"), Whitespace("\t\t\t\t")] [] - 1: HTML_NAME@362..366 + 1: HTML_TAG_NAME@362..366 0: HTML_LITERAL@362..366 "img" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@366..388 0: HTML_ATTRIBUTE@366..388 - 0: HTML_NAME@366..369 + 0: HTML_ATTRIBUTE_NAME@366..369 0: HTML_LITERAL@366..369 "src" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@369..388 0: EQ@369..370 "=" [] [] @@ -593,25 +593,25 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@390..400 0: L_ANGLE@390..395 "<" [Newline("\n"), Whitespace("\t\t\t")] [] 1: SLASH@395..396 "/" [] [] - 2: HTML_NAME@396..399 + 2: HTML_TAG_NAME@396..399 0: HTML_LITERAL@396..399 "div" [] [] 3: R_ANGLE@399..400 ">" [] [] 2: HTML_CLOSING_ELEMENT@400..409 0: L_ANGLE@400..404 "<" [Newline("\n"), Whitespace("\t\t")] [] 1: SLASH@404..405 "/" [] [] - 2: HTML_NAME@405..408 + 2: HTML_TAG_NAME@405..408 0: HTML_LITERAL@405..408 "div" [] [] 3: R_ANGLE@408..409 ">" [] [] 2: HTML_CLOSING_ELEMENT@409..417 0: L_ANGLE@409..412 "<" [Newline("\n"), Whitespace("\t")] [] 1: SLASH@412..413 "/" [] [] - 2: HTML_NAME@413..416 + 2: HTML_TAG_NAME@413..416 0: HTML_LITERAL@413..416 "div" [] [] 3: R_ANGLE@416..417 ">" [] [] 2: HTML_CLOSING_ELEMENT@417..424 0: L_ANGLE@417..419 "<" [Newline("\n")] [] 1: SLASH@419..420 "/" [] [] - 2: HTML_NAME@420..423 + 2: HTML_TAG_NAME@420..423 0: HTML_LITERAL@420..423 "div" [] [] 3: R_ANGLE@423..424 ">" [] [] 3: EOF@424..425 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/ok/element_list2.html.snap b/crates/biome_html_parser/tests/html_specs/ok/element_list2.html.snap index 9abb2029f647..17b1e03eca25 100644 --- a/crates/biome_html_parser/tests/html_specs/ok/element_list2.html.snap +++ b/crates/biome_html_parser/tests/html_specs/ok/element_list2.html.snap @@ -31,7 +31,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@9..11 "<" [Newline("\n")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@11..14 "div" [] [], }, attributes: HtmlAttributeList [], @@ -41,7 +41,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@15..16 "<" [] [], slash_token: SLASH@16..17 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@17..20 "div" [] [], }, r_angle_token: R_ANGLE@20..21 ">" [] [], @@ -53,7 +53,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@31..33 "<" [Newline("\n")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@33..36 "div" [] [], }, attributes: HtmlAttributeList [], @@ -63,7 +63,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@37..38 "<" [] [], slash_token: SLASH@38..39 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@39..42 "div" [] [], }, r_angle_token: R_ANGLE@42..43 ">" [] [], @@ -72,7 +72,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@43..45 "<" [Newline("\n")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@45..48 "div" [] [], }, attributes: HtmlAttributeList [], @@ -82,7 +82,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@49..50 "<" [] [], slash_token: SLASH@50..51 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@51..54 "div" [] [], }, r_angle_token: R_ANGLE@54..55 ">" [] [], @@ -91,7 +91,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@55..57 "<" [Newline("\n")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@57..60 "div" [] [], }, attributes: HtmlAttributeList [], @@ -101,7 +101,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@61..62 "<" [] [], slash_token: SLASH@62..63 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@63..66 "div" [] [], }, r_angle_token: R_ANGLE@66..67 ">" [] [], @@ -126,7 +126,7 @@ HtmlRoot { 2: HTML_ELEMENT@9..21 0: HTML_OPENING_ELEMENT@9..15 0: L_ANGLE@9..11 "<" [Newline("\n")] [] - 1: HTML_NAME@11..14 + 1: HTML_TAG_NAME@11..14 0: HTML_LITERAL@11..14 "div" [] [] 2: HTML_ATTRIBUTE_LIST@14..14 3: R_ANGLE@14..15 ">" [] [] @@ -134,7 +134,7 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@15..21 0: L_ANGLE@15..16 "<" [] [] 1: SLASH@16..17 "/" [] [] - 2: HTML_NAME@17..20 + 2: HTML_TAG_NAME@17..20 0: HTML_LITERAL@17..20 "div" [] [] 3: R_ANGLE@20..21 ">" [] [] 3: HTML_CONTENT@21..31 @@ -142,7 +142,7 @@ HtmlRoot { 4: HTML_ELEMENT@31..43 0: HTML_OPENING_ELEMENT@31..37 0: L_ANGLE@31..33 "<" [Newline("\n")] [] - 1: HTML_NAME@33..36 + 1: HTML_TAG_NAME@33..36 0: HTML_LITERAL@33..36 "div" [] [] 2: HTML_ATTRIBUTE_LIST@36..36 3: R_ANGLE@36..37 ">" [] [] @@ -150,13 +150,13 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@37..43 0: L_ANGLE@37..38 "<" [] [] 1: SLASH@38..39 "/" [] [] - 2: HTML_NAME@39..42 + 2: HTML_TAG_NAME@39..42 0: HTML_LITERAL@39..42 "div" [] [] 3: R_ANGLE@42..43 ">" [] [] 5: HTML_ELEMENT@43..55 0: HTML_OPENING_ELEMENT@43..49 0: L_ANGLE@43..45 "<" [Newline("\n")] [] - 1: HTML_NAME@45..48 + 1: HTML_TAG_NAME@45..48 0: HTML_LITERAL@45..48 "div" [] [] 2: HTML_ATTRIBUTE_LIST@48..48 3: R_ANGLE@48..49 ">" [] [] @@ -164,13 +164,13 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@49..55 0: L_ANGLE@49..50 "<" [] [] 1: SLASH@50..51 "/" [] [] - 2: HTML_NAME@51..54 + 2: HTML_TAG_NAME@51..54 0: HTML_LITERAL@51..54 "div" [] [] 3: R_ANGLE@54..55 ">" [] [] 6: HTML_ELEMENT@55..67 0: HTML_OPENING_ELEMENT@55..61 0: L_ANGLE@55..57 "<" [Newline("\n")] [] - 1: HTML_NAME@57..60 + 1: HTML_TAG_NAME@57..60 0: HTML_LITERAL@57..60 "div" [] [] 2: HTML_ATTRIBUTE_LIST@60..60 3: R_ANGLE@60..61 ">" [] [] @@ -178,7 +178,7 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@61..67 0: L_ANGLE@61..62 "<" [] [] 1: SLASH@62..63 "/" [] [] - 2: HTML_NAME@63..66 + 2: HTML_TAG_NAME@63..66 0: HTML_LITERAL@63..66 "div" [] [] 3: R_ANGLE@66..67 ">" [] [] 3: EOF@67..68 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/ok/embedded-languages/script-basic.html.snap b/crates/biome_html_parser/tests/html_specs/ok/embedded-languages/script-basic.html.snap index 6279e97c18a6..a56aa3c4c506 100644 --- a/crates/biome_html_parser/tests/html_specs/ok/embedded-languages/script-basic.html.snap +++ b/crates/biome_html_parser/tests/html_specs/ok/embedded-languages/script-basic.html.snap @@ -22,7 +22,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..7 "script" [] [], }, attributes: HtmlAttributeList [], @@ -36,7 +36,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@40..41 "<" [] [], slash_token: SLASH@41..42 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@42..48 "script" [] [], }, r_angle_token: R_ANGLE@48..49 ">" [] [], @@ -57,7 +57,7 @@ HtmlRoot { 0: HTML_ELEMENT@0..49 0: HTML_OPENING_ELEMENT@0..8 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..7 + 1: HTML_TAG_NAME@1..7 0: HTML_LITERAL@1..7 "script" [] [] 2: HTML_ATTRIBUTE_LIST@7..7 3: R_ANGLE@7..8 ">" [] [] @@ -67,7 +67,7 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@40..49 0: L_ANGLE@40..41 "<" [] [] 1: SLASH@41..42 "/" [] [] - 2: HTML_NAME@42..48 + 2: HTML_TAG_NAME@42..48 0: HTML_LITERAL@42..48 "script" [] [] 3: R_ANGLE@48..49 ">" [] [] 3: EOF@49..50 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/ok/embedded-languages/script-empty.html.snap b/crates/biome_html_parser/tests/html_specs/ok/embedded-languages/script-empty.html.snap index 7ff9f4cbcbc8..892a2a28c139 100644 --- a/crates/biome_html_parser/tests/html_specs/ok/embedded-languages/script-empty.html.snap +++ b/crates/biome_html_parser/tests/html_specs/ok/embedded-languages/script-empty.html.snap @@ -20,7 +20,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..7 "script" [] [], }, attributes: HtmlAttributeList [], @@ -30,7 +30,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@8..9 "<" [] [], slash_token: SLASH@9..10 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@10..16 "script" [] [], }, r_angle_token: R_ANGLE@16..17 ">" [] [], @@ -51,7 +51,7 @@ HtmlRoot { 0: HTML_ELEMENT@0..17 0: HTML_OPENING_ELEMENT@0..8 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..7 + 1: HTML_TAG_NAME@1..7 0: HTML_LITERAL@1..7 "script" [] [] 2: HTML_ATTRIBUTE_LIST@7..7 3: R_ANGLE@7..8 ">" [] [] @@ -59,7 +59,7 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@8..17 0: L_ANGLE@8..9 "<" [] [] 1: SLASH@9..10 "/" [] [] - 2: HTML_NAME@10..16 + 2: HTML_TAG_NAME@10..16 0: HTML_LITERAL@10..16 "script" [] [] 3: R_ANGLE@16..17 ">" [] [] 3: EOF@17..18 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/ok/embedded-languages/script-in-string.html.snap b/crates/biome_html_parser/tests/html_specs/ok/embedded-languages/script-in-string.html.snap index 6a9817a7f4b6..f8b6911b7764 100644 --- a/crates/biome_html_parser/tests/html_specs/ok/embedded-languages/script-in-string.html.snap +++ b/crates/biome_html_parser/tests/html_specs/ok/embedded-languages/script-in-string.html.snap @@ -20,7 +20,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..7 "script" [] [], }, attributes: HtmlAttributeList [], @@ -34,7 +34,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@97..98 "<" [] [], slash_token: SLASH@98..99 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@99..105 "script" [] [], }, r_angle_token: R_ANGLE@105..106 ">" [] [], @@ -55,7 +55,7 @@ HtmlRoot { 0: HTML_ELEMENT@0..106 0: HTML_OPENING_ELEMENT@0..8 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..7 + 1: HTML_TAG_NAME@1..7 0: HTML_LITERAL@1..7 "script" [] [] 2: HTML_ATTRIBUTE_LIST@7..7 3: R_ANGLE@7..8 ">" [] [] @@ -65,7 +65,7 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@97..106 0: L_ANGLE@97..98 "<" [] [] 1: SLASH@98..99 "/" [] [] - 2: HTML_NAME@99..105 + 2: HTML_TAG_NAME@99..105 0: HTML_LITERAL@99..105 "script" [] [] 3: R_ANGLE@105..106 ">" [] [] 3: EOF@106..107 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/ok/embedded-languages/script-less-than.html.snap b/crates/biome_html_parser/tests/html_specs/ok/embedded-languages/script-less-than.html.snap index 72d0c3c49ecd..bd19dccf3f05 100644 --- a/crates/biome_html_parser/tests/html_specs/ok/embedded-languages/script-less-than.html.snap +++ b/crates/biome_html_parser/tests/html_specs/ok/embedded-languages/script-less-than.html.snap @@ -24,7 +24,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..7 "script" [] [], }, attributes: HtmlAttributeList [], @@ -38,7 +38,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@58..59 "<" [] [], slash_token: SLASH@59..60 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@60..66 "script" [] [], }, r_angle_token: R_ANGLE@66..67 ">" [] [], @@ -59,7 +59,7 @@ HtmlRoot { 0: HTML_ELEMENT@0..67 0: HTML_OPENING_ELEMENT@0..8 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..7 + 1: HTML_TAG_NAME@1..7 0: HTML_LITERAL@1..7 "script" [] [] 2: HTML_ATTRIBUTE_LIST@7..7 3: R_ANGLE@7..8 ">" [] [] @@ -69,7 +69,7 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@58..67 0: L_ANGLE@58..59 "<" [] [] 1: SLASH@59..60 "/" [] [] - 2: HTML_NAME@60..66 + 2: HTML_TAG_NAME@60..66 0: HTML_LITERAL@60..66 "script" [] [] 3: R_ANGLE@66..67 ">" [] [] 3: EOF@67..68 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/ok/hello-world.html.snap b/crates/biome_html_parser/tests/html_specs/ok/hello-world.html.snap index b546413f2cd6..347e8ced3d40 100644 --- a/crates/biome_html_parser/tests/html_specs/ok/hello-world.html.snap +++ b/crates/biome_html_parser/tests/html_specs/ok/hello-world.html.snap @@ -38,7 +38,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@15..17 "<" [Newline("\n")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@17..21 "html" [] [], }, attributes: HtmlAttributeList [], @@ -48,7 +48,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@22..25 "<" [Newline("\n"), Whitespace("\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@25..29 "head" [] [], }, attributes: HtmlAttributeList [], @@ -58,7 +58,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@30..34 "<" [Newline("\n"), Whitespace("\t\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@34..39 "title" [] [], }, attributes: HtmlAttributeList [], @@ -72,7 +72,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@53..54 "<" [] [], slash_token: SLASH@54..55 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@55..60 "title" [] [], }, r_angle_token: R_ANGLE@60..61 ">" [] [], @@ -82,7 +82,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@61..64 "<" [Newline("\n"), Whitespace("\t")] [], slash_token: SLASH@64..65 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@65..69 "head" [] [], }, r_angle_token: R_ANGLE@69..70 ">" [] [], @@ -91,7 +91,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@70..73 "<" [Newline("\n"), Whitespace("\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@73..77 "body" [] [], }, attributes: HtmlAttributeList [], @@ -101,7 +101,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@78..82 "<" [Newline("\n"), Whitespace("\t\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@82..84 "h1" [] [], }, attributes: HtmlAttributeList [], @@ -115,7 +115,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@98..99 "<" [] [], slash_token: SLASH@99..100 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@100..102 "h1" [] [], }, r_angle_token: R_ANGLE@102..103 ">" [] [], @@ -124,7 +124,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@103..107 "<" [Newline("\n"), Whitespace("\t\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@107..108 "p" [] [], }, attributes: HtmlAttributeList [], @@ -138,7 +138,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@134..135 "<" [] [], slash_token: SLASH@135..136 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@136..137 "p" [] [], }, r_angle_token: R_ANGLE@137..138 ">" [] [], @@ -148,7 +148,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@138..141 "<" [Newline("\n"), Whitespace("\t")] [], slash_token: SLASH@141..142 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@142..146 "body" [] [], }, r_angle_token: R_ANGLE@146..147 ">" [] [], @@ -158,7 +158,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@147..149 "<" [Newline("\n")] [], slash_token: SLASH@149..150 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@150..154 "html" [] [], }, r_angle_token: R_ANGLE@154..155 ">" [] [], @@ -187,7 +187,7 @@ HtmlRoot { 0: HTML_ELEMENT@15..155 0: HTML_OPENING_ELEMENT@15..22 0: L_ANGLE@15..17 "<" [Newline("\n")] [] - 1: HTML_NAME@17..21 + 1: HTML_TAG_NAME@17..21 0: HTML_LITERAL@17..21 "html" [] [] 2: HTML_ATTRIBUTE_LIST@21..21 3: R_ANGLE@21..22 ">" [] [] @@ -195,7 +195,7 @@ HtmlRoot { 0: HTML_ELEMENT@22..70 0: HTML_OPENING_ELEMENT@22..30 0: L_ANGLE@22..25 "<" [Newline("\n"), Whitespace("\t")] [] - 1: HTML_NAME@25..29 + 1: HTML_TAG_NAME@25..29 0: HTML_LITERAL@25..29 "head" [] [] 2: HTML_ATTRIBUTE_LIST@29..29 3: R_ANGLE@29..30 ">" [] [] @@ -203,7 +203,7 @@ HtmlRoot { 0: HTML_ELEMENT@30..61 0: HTML_OPENING_ELEMENT@30..40 0: L_ANGLE@30..34 "<" [Newline("\n"), Whitespace("\t\t")] [] - 1: HTML_NAME@34..39 + 1: HTML_TAG_NAME@34..39 0: HTML_LITERAL@34..39 "title" [] [] 2: HTML_ATTRIBUTE_LIST@39..39 3: R_ANGLE@39..40 ">" [] [] @@ -213,19 +213,19 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@53..61 0: L_ANGLE@53..54 "<" [] [] 1: SLASH@54..55 "/" [] [] - 2: HTML_NAME@55..60 + 2: HTML_TAG_NAME@55..60 0: HTML_LITERAL@55..60 "title" [] [] 3: R_ANGLE@60..61 ">" [] [] 2: HTML_CLOSING_ELEMENT@61..70 0: L_ANGLE@61..64 "<" [Newline("\n"), Whitespace("\t")] [] 1: SLASH@64..65 "/" [] [] - 2: HTML_NAME@65..69 + 2: HTML_TAG_NAME@65..69 0: HTML_LITERAL@65..69 "head" [] [] 3: R_ANGLE@69..70 ">" [] [] 1: HTML_ELEMENT@70..147 0: HTML_OPENING_ELEMENT@70..78 0: L_ANGLE@70..73 "<" [Newline("\n"), Whitespace("\t")] [] - 1: HTML_NAME@73..77 + 1: HTML_TAG_NAME@73..77 0: HTML_LITERAL@73..77 "body" [] [] 2: HTML_ATTRIBUTE_LIST@77..77 3: R_ANGLE@77..78 ">" [] [] @@ -233,7 +233,7 @@ HtmlRoot { 0: HTML_ELEMENT@78..103 0: HTML_OPENING_ELEMENT@78..85 0: L_ANGLE@78..82 "<" [Newline("\n"), Whitespace("\t\t")] [] - 1: HTML_NAME@82..84 + 1: HTML_TAG_NAME@82..84 0: HTML_LITERAL@82..84 "h1" [] [] 2: HTML_ATTRIBUTE_LIST@84..84 3: R_ANGLE@84..85 ">" [] [] @@ -243,13 +243,13 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@98..103 0: L_ANGLE@98..99 "<" [] [] 1: SLASH@99..100 "/" [] [] - 2: HTML_NAME@100..102 + 2: HTML_TAG_NAME@100..102 0: HTML_LITERAL@100..102 "h1" [] [] 3: R_ANGLE@102..103 ">" [] [] 1: HTML_ELEMENT@103..138 0: HTML_OPENING_ELEMENT@103..109 0: L_ANGLE@103..107 "<" [Newline("\n"), Whitespace("\t\t")] [] - 1: HTML_NAME@107..108 + 1: HTML_TAG_NAME@107..108 0: HTML_LITERAL@107..108 "p" [] [] 2: HTML_ATTRIBUTE_LIST@108..108 3: R_ANGLE@108..109 ">" [] [] @@ -259,19 +259,19 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@134..138 0: L_ANGLE@134..135 "<" [] [] 1: SLASH@135..136 "/" [] [] - 2: HTML_NAME@136..137 + 2: HTML_TAG_NAME@136..137 0: HTML_LITERAL@136..137 "p" [] [] 3: R_ANGLE@137..138 ">" [] [] 2: HTML_CLOSING_ELEMENT@138..147 0: L_ANGLE@138..141 "<" [Newline("\n"), Whitespace("\t")] [] 1: SLASH@141..142 "/" [] [] - 2: HTML_NAME@142..146 + 2: HTML_TAG_NAME@142..146 0: HTML_LITERAL@142..146 "body" [] [] 3: R_ANGLE@146..147 ">" [] [] 2: HTML_CLOSING_ELEMENT@147..155 0: L_ANGLE@147..149 "<" [Newline("\n")] [] 1: SLASH@149..150 "/" [] [] - 2: HTML_NAME@150..154 + 2: HTML_TAG_NAME@150..154 0: HTML_LITERAL@150..154 "html" [] [] 3: R_ANGLE@154..155 ">" [] [] 3: EOF@155..156 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/br-in-span.html.snap b/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/br-in-span.html.snap index 22c84463f30b..f863ab66716f 100644 --- a/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/br-in-span.html.snap +++ b/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/br-in-span.html.snap @@ -20,7 +20,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..5 "span" [] [], }, attributes: HtmlAttributeList [], @@ -32,7 +32,7 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@9..10 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@10..12 "br" [] [], }, attributes: HtmlAttributeList [], @@ -46,7 +46,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@16..17 "<" [] [], slash_token: SLASH@17..18 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@18..22 "span" [] [], }, r_angle_token: R_ANGLE@22..23 ">" [] [], @@ -67,7 +67,7 @@ HtmlRoot { 0: HTML_ELEMENT@0..23 0: HTML_OPENING_ELEMENT@0..6 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..5 + 1: HTML_TAG_NAME@1..5 0: HTML_LITERAL@1..5 "span" [] [] 2: HTML_ATTRIBUTE_LIST@5..5 3: R_ANGLE@5..6 ">" [] [] @@ -76,7 +76,7 @@ HtmlRoot { 0: HTML_LITERAL@6..9 "foo" [] [] 1: HTML_SELF_CLOSING_ELEMENT@9..13 0: L_ANGLE@9..10 "<" [] [] - 1: HTML_NAME@10..12 + 1: HTML_TAG_NAME@10..12 0: HTML_LITERAL@10..12 "br" [] [] 2: HTML_ATTRIBUTE_LIST@12..12 3: (empty) @@ -86,7 +86,7 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@16..23 0: L_ANGLE@16..17 "<" [] [] 1: SLASH@17..18 "/" [] [] - 2: HTML_NAME@18..22 + 2: HTML_TAG_NAME@18..22 0: HTML_LITERAL@18..22 "span" [] [] 3: R_ANGLE@22..23 ">" [] [] 3: EOF@23..24 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/br.html.snap b/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/br.html.snap index 6e475d903219..3d35f9f9dcab 100644 --- a/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/br.html.snap +++ b/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/br.html.snap @@ -22,7 +22,7 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@3..4 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@4..6 "br" [] [], }, attributes: HtmlAttributeList [], @@ -48,7 +48,7 @@ HtmlRoot { 0: HTML_LITERAL@0..3 "foo" [] [] 1: HTML_SELF_CLOSING_ELEMENT@3..7 0: L_ANGLE@3..4 "<" [] [] - 1: HTML_NAME@4..6 + 1: HTML_TAG_NAME@4..6 0: HTML_LITERAL@4..6 "br" [] [] 2: HTML_ATTRIBUTE_LIST@6..6 3: (empty) diff --git a/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/casing.html.snap b/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/casing.html.snap index 9e02d08dfdd0..609ac760f264 100644 --- a/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/casing.html.snap +++ b/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/casing.html.snap @@ -23,7 +23,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..5 "head" [] [], }, attributes: HtmlAttributeList [], @@ -32,12 +32,12 @@ HtmlRoot { children: HtmlElementList [ HtmlSelfClosingElement { l_angle_token: L_ANGLE@6..9 "<" [Newline("\n"), Whitespace("\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@9..14 "META" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@14..21 "charset" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -53,12 +53,12 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@30..33 "<" [Newline("\n"), Whitespace("\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@33..38 "MeTa" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@38..45 "charset" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -76,7 +76,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@54..56 "<" [Newline("\n")] [], slash_token: SLASH@56..57 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@57..61 "head" [] [], }, r_angle_token: R_ANGLE@61..62 ">" [] [], @@ -97,18 +97,18 @@ HtmlRoot { 0: HTML_ELEMENT@0..62 0: HTML_OPENING_ELEMENT@0..6 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..5 + 1: HTML_TAG_NAME@1..5 0: HTML_LITERAL@1..5 "head" [] [] 2: HTML_ATTRIBUTE_LIST@5..5 3: R_ANGLE@5..6 ">" [] [] 1: HTML_ELEMENT_LIST@6..54 0: HTML_SELF_CLOSING_ELEMENT@6..30 0: L_ANGLE@6..9 "<" [Newline("\n"), Whitespace("\t")] [] - 1: HTML_NAME@9..14 + 1: HTML_TAG_NAME@9..14 0: HTML_LITERAL@9..14 "META" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@14..29 0: HTML_ATTRIBUTE@14..29 - 0: HTML_NAME@14..21 + 0: HTML_ATTRIBUTE_NAME@14..21 0: HTML_LITERAL@14..21 "charset" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@21..29 0: EQ@21..22 "=" [] [] @@ -118,11 +118,11 @@ HtmlRoot { 4: R_ANGLE@29..30 ">" [] [] 1: HTML_SELF_CLOSING_ELEMENT@30..54 0: L_ANGLE@30..33 "<" [Newline("\n"), Whitespace("\t")] [] - 1: HTML_NAME@33..38 + 1: HTML_TAG_NAME@33..38 0: HTML_LITERAL@33..38 "MeTa" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@38..53 0: HTML_ATTRIBUTE@38..53 - 0: HTML_NAME@38..45 + 0: HTML_ATTRIBUTE_NAME@38..45 0: HTML_LITERAL@38..45 "charset" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@45..53 0: EQ@45..46 "=" [] [] @@ -133,7 +133,7 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@54..62 0: L_ANGLE@54..56 "<" [Newline("\n")] [] 1: SLASH@56..57 "/" [] [] - 2: HTML_NAME@57..61 + 2: HTML_TAG_NAME@57..61 0: HTML_LITERAL@57..61 "head" [] [] 3: R_ANGLE@61..62 ">" [] [] 3: EOF@62..63 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/meta.html.snap b/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/meta.html.snap index c95bf78c5b38..b5eb256043c4 100644 --- a/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/meta.html.snap +++ b/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/meta.html.snap @@ -22,7 +22,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..5 "head" [] [], }, attributes: HtmlAttributeList [], @@ -31,12 +31,12 @@ HtmlRoot { children: HtmlElementList [ HtmlSelfClosingElement { l_angle_token: L_ANGLE@6..9 "<" [Newline("\n"), Whitespace("\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@9..14 "meta" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@14..21 "charset" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -54,7 +54,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@30..32 "<" [Newline("\n")] [], slash_token: SLASH@32..33 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@33..37 "head" [] [], }, r_angle_token: R_ANGLE@37..38 ">" [] [], @@ -75,18 +75,18 @@ HtmlRoot { 0: HTML_ELEMENT@0..38 0: HTML_OPENING_ELEMENT@0..6 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..5 + 1: HTML_TAG_NAME@1..5 0: HTML_LITERAL@1..5 "head" [] [] 2: HTML_ATTRIBUTE_LIST@5..5 3: R_ANGLE@5..6 ">" [] [] 1: HTML_ELEMENT_LIST@6..30 0: HTML_SELF_CLOSING_ELEMENT@6..30 0: L_ANGLE@6..9 "<" [Newline("\n"), Whitespace("\t")] [] - 1: HTML_NAME@9..14 + 1: HTML_TAG_NAME@9..14 0: HTML_LITERAL@9..14 "meta" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@14..29 0: HTML_ATTRIBUTE@14..29 - 0: HTML_NAME@14..21 + 0: HTML_ATTRIBUTE_NAME@14..21 0: HTML_LITERAL@14..21 "charset" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@21..29 0: EQ@21..22 "=" [] [] @@ -97,7 +97,7 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@30..38 0: L_ANGLE@30..32 "<" [Newline("\n")] [] 1: SLASH@32..33 "/" [] [] - 2: HTML_NAME@33..37 + 2: HTML_TAG_NAME@33..37 0: HTML_LITERAL@33..37 "head" [] [] 3: R_ANGLE@37..38 ">" [] [] 3: EOF@38..39 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/param.html.snap b/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/param.html.snap index b31aedaeeb64..5f5e61efbfc7 100644 --- a/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/param.html.snap +++ b/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/param.html.snap @@ -23,12 +23,12 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..8 "object" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@8..12 "type" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -39,7 +39,7 @@ HtmlRoot { }, }, HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@31..35 "data" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -50,7 +50,7 @@ HtmlRoot { }, }, HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@65..70 "width" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -61,7 +61,7 @@ HtmlRoot { }, }, HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@77..83 "height" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -77,12 +77,12 @@ HtmlRoot { children: HtmlElementList [ HtmlSelfClosingElement { l_angle_token: L_ANGLE@90..93 "<" [Newline("\n"), Whitespace("\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@93..99 "param" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@99..103 "name" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -93,7 +93,7 @@ HtmlRoot { }, }, HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@115..120 "value" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -109,12 +109,12 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@128..131 "<" [Newline("\n"), Whitespace("\t")] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@131..137 "param" [] [Whitespace(" ")], }, attributes: HtmlAttributeList [ HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@137..141 "name" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -125,7 +125,7 @@ HtmlRoot { }, }, HtmlAttribute { - name: HtmlName { + name: HtmlAttributeName { value_token: HTML_LITERAL@148..153 "value" [] [], }, initializer: HtmlAttributeInitializerClause { @@ -143,7 +143,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@183..185 "<" [Newline("\n")] [], slash_token: SLASH@185..186 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@186..192 "object" [] [], }, r_angle_token: R_ANGLE@192..193 ">" [] [], @@ -164,32 +164,32 @@ HtmlRoot { 0: HTML_ELEMENT@0..193 0: HTML_OPENING_ELEMENT@0..90 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..8 + 1: HTML_TAG_NAME@1..8 0: HTML_LITERAL@1..8 "object" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@8..89 0: HTML_ATTRIBUTE@8..31 - 0: HTML_NAME@8..12 + 0: HTML_ATTRIBUTE_NAME@8..12 0: HTML_LITERAL@8..12 "type" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@12..31 0: EQ@12..13 "=" [] [] 1: HTML_STRING@13..31 0: HTML_STRING_LITERAL@13..31 "\"application/pdf\"" [] [Whitespace(" ")] 1: HTML_ATTRIBUTE@31..65 - 0: HTML_NAME@31..35 + 0: HTML_ATTRIBUTE_NAME@31..35 0: HTML_LITERAL@31..35 "data" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@35..65 0: EQ@35..36 "=" [] [] 1: HTML_STRING@36..65 0: HTML_STRING_LITERAL@36..65 "\"/media/examples/In-CC0.pdf\"" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE@65..77 - 0: HTML_NAME@65..70 + 0: HTML_ATTRIBUTE_NAME@65..70 0: HTML_LITERAL@65..70 "width" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@70..77 0: EQ@70..71 "=" [] [] 1: HTML_STRING@71..77 0: HTML_STRING_LITERAL@71..77 "\"250\"" [] [Whitespace(" ")] 3: HTML_ATTRIBUTE@77..89 - 0: HTML_NAME@77..83 + 0: HTML_ATTRIBUTE_NAME@77..83 0: HTML_LITERAL@77..83 "height" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@83..89 0: EQ@83..84 "=" [] [] @@ -199,18 +199,18 @@ HtmlRoot { 1: HTML_ELEMENT_LIST@90..183 0: HTML_SELF_CLOSING_ELEMENT@90..128 0: L_ANGLE@90..93 "<" [Newline("\n"), Whitespace("\t")] [] - 1: HTML_NAME@93..99 + 1: HTML_TAG_NAME@93..99 0: HTML_LITERAL@93..99 "param" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@99..127 0: HTML_ATTRIBUTE@99..115 - 0: HTML_NAME@99..103 + 0: HTML_ATTRIBUTE_NAME@99..103 0: HTML_LITERAL@99..103 "name" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@103..115 0: EQ@103..104 "=" [] [] 1: HTML_STRING@104..115 0: HTML_STRING_LITERAL@104..115 "\"autoplay\"" [] [Whitespace(" ")] 1: HTML_ATTRIBUTE@115..127 - 0: HTML_NAME@115..120 + 0: HTML_ATTRIBUTE_NAME@115..120 0: HTML_LITERAL@115..120 "value" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@120..127 0: EQ@120..121 "=" [] [] @@ -220,18 +220,18 @@ HtmlRoot { 4: R_ANGLE@127..128 ">" [] [] 1: HTML_SELF_CLOSING_ELEMENT@128..183 0: L_ANGLE@128..131 "<" [Newline("\n"), Whitespace("\t")] [] - 1: HTML_NAME@131..137 + 1: HTML_TAG_NAME@131..137 0: HTML_LITERAL@131..137 "param" [] [Whitespace(" ")] 2: HTML_ATTRIBUTE_LIST@137..182 0: HTML_ATTRIBUTE@137..148 - 0: HTML_NAME@137..141 + 0: HTML_ATTRIBUTE_NAME@137..141 0: HTML_LITERAL@137..141 "name" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@141..148 0: EQ@141..142 "=" [] [] 1: HTML_STRING@142..148 0: HTML_STRING_LITERAL@142..148 "\"src\"" [] [Whitespace(" ")] 1: HTML_ATTRIBUTE@148..182 - 0: HTML_NAME@148..153 + 0: HTML_ATTRIBUTE_NAME@148..153 0: HTML_LITERAL@148..153 "value" [] [] 1: HTML_ATTRIBUTE_INITIALIZER_CLAUSE@153..182 0: EQ@153..154 "=" [] [] @@ -242,7 +242,7 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@183..193 0: L_ANGLE@183..185 "<" [Newline("\n")] [] 1: SLASH@185..186 "/" [] [] - 2: HTML_NAME@186..192 + 2: HTML_TAG_NAME@186..192 0: HTML_LITERAL@186..192 "object" [] [] 3: R_ANGLE@192..193 ">" [] [] 3: EOF@193..194 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/wbr.html.snap b/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/wbr.html.snap index 00d64b7fa625..ceb54dc47c52 100644 --- a/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/wbr.html.snap +++ b/crates/biome_html_parser/tests/html_specs/ok/no-end-tags/wbr.html.snap @@ -21,7 +21,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..2 "p" [] [], }, attributes: HtmlAttributeList [], @@ -36,7 +36,7 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@55..56 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@56..59 "wbr" [] [], }, attributes: HtmlAttributeList [], @@ -48,7 +48,7 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@62..63 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@63..66 "wbr" [] [], }, attributes: HtmlAttributeList [], @@ -60,7 +60,7 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@69..70 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@70..73 "wbr" [] [], }, attributes: HtmlAttributeList [], @@ -72,7 +72,7 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@77..78 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@78..81 "wbr" [] [], }, attributes: HtmlAttributeList [], @@ -84,7 +84,7 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@85..86 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@86..89 "wbr" [] [], }, attributes: HtmlAttributeList [], @@ -96,7 +96,7 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@93..94 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@94..97 "wbr" [] [], }, attributes: HtmlAttributeList [], @@ -108,7 +108,7 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@102..103 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@103..106 "wbr" [] [], }, attributes: HtmlAttributeList [], @@ -120,7 +120,7 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@112..113 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@113..116 "wbr" [] [], }, attributes: HtmlAttributeList [], @@ -132,7 +132,7 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@119..120 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@120..123 "wbr" [] [], }, attributes: HtmlAttributeList [], @@ -144,7 +144,7 @@ HtmlRoot { }, HtmlSelfClosingElement { l_angle_token: L_ANGLE@129..130 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@130..133 "wbr" [] [], }, attributes: HtmlAttributeList [], @@ -158,7 +158,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@137..138 "<" [] [], slash_token: SLASH@138..139 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@139..140 "p" [] [], }, r_angle_token: R_ANGLE@140..141 ">" [] [], @@ -179,7 +179,7 @@ HtmlRoot { 0: HTML_ELEMENT@0..141 0: HTML_OPENING_ELEMENT@0..3 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..2 + 1: HTML_TAG_NAME@1..2 0: HTML_LITERAL@1..2 "p" [] [] 2: HTML_ATTRIBUTE_LIST@2..2 3: R_ANGLE@2..3 ">" [] [] @@ -190,7 +190,7 @@ HtmlRoot { 0: HTML_LITERAL@48..55 "there" [Newline("\n"), Whitespace("\t")] [] 2: HTML_SELF_CLOSING_ELEMENT@55..60 0: L_ANGLE@55..56 "<" [] [] - 1: HTML_NAME@56..59 + 1: HTML_TAG_NAME@56..59 0: HTML_LITERAL@56..59 "wbr" [] [] 2: HTML_ATTRIBUTE_LIST@59..59 3: (empty) @@ -199,7 +199,7 @@ HtmlRoot { 0: HTML_LITERAL@60..62 "is" [] [] 4: HTML_SELF_CLOSING_ELEMENT@62..67 0: L_ANGLE@62..63 "<" [] [] - 1: HTML_NAME@63..66 + 1: HTML_TAG_NAME@63..66 0: HTML_LITERAL@63..66 "wbr" [] [] 2: HTML_ATTRIBUTE_LIST@66..66 3: (empty) @@ -208,7 +208,7 @@ HtmlRoot { 0: HTML_LITERAL@67..69 "no" [] [] 6: HTML_SELF_CLOSING_ELEMENT@69..74 0: L_ANGLE@69..70 "<" [] [] - 1: HTML_NAME@70..73 + 1: HTML_TAG_NAME@70..73 0: HTML_LITERAL@70..73 "wbr" [] [] 2: HTML_ATTRIBUTE_LIST@73..73 3: (empty) @@ -217,7 +217,7 @@ HtmlRoot { 0: HTML_LITERAL@74..77 "way" [] [] 8: HTML_SELF_CLOSING_ELEMENT@77..82 0: L_ANGLE@77..78 "<" [] [] - 1: HTML_NAME@78..81 + 1: HTML_TAG_NAME@78..81 0: HTML_LITERAL@78..81 "wbr" [] [] 2: HTML_ATTRIBUTE_LIST@81..81 3: (empty) @@ -226,7 +226,7 @@ HtmlRoot { 0: HTML_LITERAL@82..85 "you" [] [] 10: HTML_SELF_CLOSING_ELEMENT@85..90 0: L_ANGLE@85..86 "<" [] [] - 1: HTML_NAME@86..89 + 1: HTML_TAG_NAME@86..89 0: HTML_LITERAL@86..89 "wbr" [] [] 2: HTML_ATTRIBUTE_LIST@89..89 3: (empty) @@ -235,7 +235,7 @@ HtmlRoot { 0: HTML_LITERAL@90..93 "are" [] [] 12: HTML_SELF_CLOSING_ELEMENT@93..98 0: L_ANGLE@93..94 "<" [] [] - 1: HTML_NAME@94..97 + 1: HTML_TAG_NAME@94..97 0: HTML_LITERAL@94..97 "wbr" [] [] 2: HTML_ATTRIBUTE_LIST@97..97 3: (empty) @@ -244,7 +244,7 @@ HtmlRoot { 0: HTML_LITERAL@98..102 "ever" [] [] 14: HTML_SELF_CLOSING_ELEMENT@102..107 0: L_ANGLE@102..103 "<" [] [] - 1: HTML_NAME@103..106 + 1: HTML_TAG_NAME@103..106 0: HTML_LITERAL@103..106 "wbr" [] [] 2: HTML_ATTRIBUTE_LIST@106..106 3: (empty) @@ -253,7 +253,7 @@ HtmlRoot { 0: HTML_LITERAL@107..112 "going" [] [] 16: HTML_SELF_CLOSING_ELEMENT@112..117 0: L_ANGLE@112..113 "<" [] [] - 1: HTML_NAME@113..116 + 1: HTML_TAG_NAME@113..116 0: HTML_LITERAL@113..116 "wbr" [] [] 2: HTML_ATTRIBUTE_LIST@116..116 3: (empty) @@ -262,7 +262,7 @@ HtmlRoot { 0: HTML_LITERAL@117..119 "to" [] [] 18: HTML_SELF_CLOSING_ELEMENT@119..124 0: L_ANGLE@119..120 "<" [] [] - 1: HTML_NAME@120..123 + 1: HTML_TAG_NAME@120..123 0: HTML_LITERAL@120..123 "wbr" [] [] 2: HTML_ATTRIBUTE_LIST@123..123 3: (empty) @@ -271,7 +271,7 @@ HtmlRoot { 0: HTML_LITERAL@124..129 "catch" [] [] 20: HTML_SELF_CLOSING_ELEMENT@129..134 0: L_ANGLE@129..130 "<" [] [] - 1: HTML_NAME@130..133 + 1: HTML_TAG_NAME@130..133 0: HTML_LITERAL@130..133 "wbr" [] [] 2: HTML_ATTRIBUTE_LIST@133..133 3: (empty) @@ -281,7 +281,7 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@137..141 0: L_ANGLE@137..138 "<" [] [] 1: SLASH@138..139 "/" [] [] - 2: HTML_NAME@139..140 + 2: HTML_TAG_NAME@139..140 0: HTML_LITERAL@139..140 "p" [] [] 3: R_ANGLE@140..141 ">" [] [] 3: EOF@141..142 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/ok/quote-in-child.html.snap b/crates/biome_html_parser/tests/html_specs/ok/quote-in-child.html.snap index b0f0e54538de..a8930bb1eaa9 100644 --- a/crates/biome_html_parser/tests/html_specs/ok/quote-in-child.html.snap +++ b/crates/biome_html_parser/tests/html_specs/ok/quote-in-child.html.snap @@ -20,7 +20,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..2 "p" [] [], }, attributes: HtmlAttributeList [], @@ -33,7 +33,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@4..5 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@5..9 "span" [] [], }, attributes: HtmlAttributeList [], @@ -47,7 +47,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@13..14 "<" [] [], slash_token: SLASH@14..15 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@15..19 "span" [] [], }, r_angle_token: R_ANGLE@19..20 ">" [] [], @@ -60,7 +60,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@35..36 "<" [] [], slash_token: SLASH@36..37 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@37..38 "p" [] [], }, r_angle_token: R_ANGLE@38..39 ">" [] [], @@ -81,7 +81,7 @@ HtmlRoot { 0: HTML_ELEMENT@0..39 0: HTML_OPENING_ELEMENT@0..3 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..2 + 1: HTML_TAG_NAME@1..2 0: HTML_LITERAL@1..2 "p" [] [] 2: HTML_ATTRIBUTE_LIST@2..2 3: R_ANGLE@2..3 ">" [] [] @@ -91,7 +91,7 @@ HtmlRoot { 1: HTML_ELEMENT@4..20 0: HTML_OPENING_ELEMENT@4..10 0: L_ANGLE@4..5 "<" [] [] - 1: HTML_NAME@5..9 + 1: HTML_TAG_NAME@5..9 0: HTML_LITERAL@5..9 "span" [] [] 2: HTML_ATTRIBUTE_LIST@9..9 3: R_ANGLE@9..10 ">" [] [] @@ -101,7 +101,7 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@13..20 0: L_ANGLE@13..14 "<" [] [] 1: SLASH@14..15 "/" [] [] - 2: HTML_NAME@15..19 + 2: HTML_TAG_NAME@15..19 0: HTML_LITERAL@15..19 "span" [] [] 3: R_ANGLE@19..20 ">" [] [] 2: HTML_CONTENT@20..35 @@ -109,7 +109,7 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@35..39 0: L_ANGLE@35..36 "<" [] [] 1: SLASH@36..37 "/" [] [] - 2: HTML_NAME@37..38 + 2: HTML_TAG_NAME@37..38 0: HTML_LITERAL@37..38 "p" [] [] 3: R_ANGLE@38..39 ">" [] [] 3: EOF@39..40 "" [Newline("\n")] [] diff --git a/crates/biome_html_parser/tests/html_specs/ok/special-chars.html.snap b/crates/biome_html_parser/tests/html_specs/ok/special-chars.html.snap index 67025c14874a..f6936812a5d6 100644 --- a/crates/biome_html_parser/tests/html_specs/ok/special-chars.html.snap +++ b/crates/biome_html_parser/tests/html_specs/ok/special-chars.html.snap @@ -24,7 +24,7 @@ HtmlRoot { HtmlElement { opening_element: HtmlOpeningElement { l_angle_token: L_ANGLE@0..1 "<" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@1..4 "div" [] [], }, attributes: HtmlAttributeList [], @@ -44,7 +44,7 @@ HtmlRoot { closing_element: HtmlClosingElement { l_angle_token: L_ANGLE@38..40 "<" [Newline("\n")] [], slash_token: SLASH@40..41 "/" [] [], - name: HtmlName { + name: HtmlTagName { value_token: HTML_LITERAL@41..44 "div" [] [], }, r_angle_token: R_ANGLE@44..45 ">" [] [], @@ -65,7 +65,7 @@ HtmlRoot { 0: HTML_ELEMENT@0..45 0: HTML_OPENING_ELEMENT@0..5 0: L_ANGLE@0..1 "<" [] [] - 1: HTML_NAME@1..4 + 1: HTML_TAG_NAME@1..4 0: HTML_LITERAL@1..4 "div" [] [] 2: HTML_ATTRIBUTE_LIST@4..4 3: R_ANGLE@4..5 ">" [] [] @@ -79,7 +79,7 @@ HtmlRoot { 2: HTML_CLOSING_ELEMENT@38..45 0: L_ANGLE@38..40 "<" [Newline("\n")] [] 1: SLASH@40..41 "/" [] [] - 2: HTML_NAME@41..44 + 2: HTML_TAG_NAME@41..44 0: HTML_LITERAL@41..44 "div" [] [] 3: R_ANGLE@44..45 ">" [] [] 3: EOF@45..46 "" [Newline("\n")] [] diff --git a/crates/biome_html_syntax/src/generated/kind.rs b/crates/biome_html_syntax/src/generated/kind.rs index 496a5c0d8908..b95b1b2aa19c 100644 --- a/crates/biome_html_syntax/src/generated/kind.rs +++ b/crates/biome_html_syntax/src/generated/kind.rs @@ -44,7 +44,8 @@ pub enum HtmlSyntaxKind { HTML_ATTRIBUTE, HTML_ATTRIBUTE_INITIALIZER_CLAUSE, HTML_STRING, - HTML_NAME, + HTML_TAG_NAME, + HTML_ATTRIBUTE_NAME, HTML_ELEMENT_LIST, HTML_ATTRIBUTE_LIST, HTML_CONTENT, diff --git a/crates/biome_html_syntax/src/generated/macros.rs b/crates/biome_html_syntax/src/generated/macros.rs index f392e67772e6..e4aa15956c34 100644 --- a/crates/biome_html_syntax/src/generated/macros.rs +++ b/crates/biome_html_syntax/src/generated/macros.rs @@ -25,6 +25,10 @@ macro_rules! map_syntax_node { unsafe { $crate::HtmlAttributeInitializerClause::new_unchecked(node) }; $body } + $crate::HtmlSyntaxKind::HTML_ATTRIBUTE_NAME => { + let $pattern = unsafe { $crate::HtmlAttributeName::new_unchecked(node) }; + $body + } $crate::HtmlSyntaxKind::HTML_CDATA_SECTION => { let $pattern = unsafe { $crate::HtmlCdataSection::new_unchecked(node) }; $body @@ -49,10 +53,6 @@ macro_rules! map_syntax_node { let $pattern = unsafe { $crate::HtmlElement::new_unchecked(node) }; $body } - $crate::HtmlSyntaxKind::HTML_NAME => { - let $pattern = unsafe { $crate::HtmlName::new_unchecked(node) }; - $body - } $crate::HtmlSyntaxKind::HTML_OPENING_ELEMENT => { let $pattern = unsafe { $crate::HtmlOpeningElement::new_unchecked(node) }; $body @@ -69,6 +69,10 @@ macro_rules! map_syntax_node { let $pattern = unsafe { $crate::HtmlString::new_unchecked(node) }; $body } + $crate::HtmlSyntaxKind::HTML_TAG_NAME => { + let $pattern = unsafe { $crate::HtmlTagName::new_unchecked(node) }; + $body + } $crate::HtmlSyntaxKind::HTML_BOGUS => { let $pattern = unsafe { $crate::HtmlBogus::new_unchecked(node) }; $body diff --git a/crates/biome_html_syntax/src/generated/nodes.rs b/crates/biome_html_syntax/src/generated/nodes.rs index b394db8b0259..319ffbe691b3 100644 --- a/crates/biome_html_syntax/src/generated/nodes.rs +++ b/crates/biome_html_syntax/src/generated/nodes.rs @@ -39,7 +39,7 @@ impl HtmlAttribute { initializer: self.initializer(), } } - pub fn name(&self) -> SyntaxResult { + pub fn name(&self) -> SyntaxResult { support::required_node(&self.syntax, 0usize) } pub fn initializer(&self) -> Option { @@ -56,7 +56,7 @@ impl Serialize for HtmlAttribute { } #[derive(Serialize)] pub struct HtmlAttributeFields { - pub name: SyntaxResult, + pub name: SyntaxResult, pub initializer: Option, } #[derive(Clone, PartialEq, Eq, Hash)] @@ -100,6 +100,41 @@ pub struct HtmlAttributeInitializerClauseFields { pub value: SyntaxResult, } #[derive(Clone, PartialEq, Eq, Hash)] +pub struct HtmlAttributeName { + pub(crate) syntax: SyntaxNode, +} +impl HtmlAttributeName { + #[doc = r" Create an AstNode from a SyntaxNode without checking its kind"] + #[doc = r""] + #[doc = r" # Safety"] + #[doc = r" This function must be guarded with a call to [AstNode::can_cast]"] + #[doc = r" or a match on [SyntaxNode::kind]"] + #[inline] + pub const unsafe fn new_unchecked(syntax: SyntaxNode) -> Self { + Self { syntax } + } + pub fn as_fields(&self) -> HtmlAttributeNameFields { + HtmlAttributeNameFields { + value_token: self.value_token(), + } + } + pub fn value_token(&self) -> SyntaxResult { + support::required_token(&self.syntax, 0usize) + } +} +impl Serialize for HtmlAttributeName { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + self.as_fields().serialize(serializer) + } +} +#[derive(Serialize)] +pub struct HtmlAttributeNameFields { + pub value_token: SyntaxResult, +} +#[derive(Clone, PartialEq, Eq, Hash)] pub struct HtmlCdataSection { pub(crate) syntax: SyntaxNode, } @@ -172,7 +207,7 @@ impl HtmlClosingElement { pub fn slash_token(&self) -> SyntaxResult { support::required_token(&self.syntax, 1usize) } - pub fn name(&self) -> SyntaxResult { + pub fn name(&self) -> SyntaxResult { support::required_node(&self.syntax, 2usize) } pub fn r_angle_token(&self) -> SyntaxResult { @@ -191,7 +226,7 @@ impl Serialize for HtmlClosingElement { pub struct HtmlClosingElementFields { pub l_angle_token: SyntaxResult, pub slash_token: SyntaxResult, - pub name: SyntaxResult, + pub name: SyntaxResult, pub r_angle_token: SyntaxResult, } #[derive(Clone, PartialEq, Eq, Hash)] @@ -390,41 +425,6 @@ pub struct HtmlElementFields { pub closing_element: SyntaxResult, } #[derive(Clone, PartialEq, Eq, Hash)] -pub struct HtmlName { - pub(crate) syntax: SyntaxNode, -} -impl HtmlName { - #[doc = r" Create an AstNode from a SyntaxNode without checking its kind"] - #[doc = r""] - #[doc = r" # Safety"] - #[doc = r" This function must be guarded with a call to [AstNode::can_cast]"] - #[doc = r" or a match on [SyntaxNode::kind]"] - #[inline] - pub const unsafe fn new_unchecked(syntax: SyntaxNode) -> Self { - Self { syntax } - } - pub fn as_fields(&self) -> HtmlNameFields { - HtmlNameFields { - value_token: self.value_token(), - } - } - pub fn value_token(&self) -> SyntaxResult { - support::required_token(&self.syntax, 0usize) - } -} -impl Serialize for HtmlName { - fn serialize(&self, serializer: S) -> Result - where - S: Serializer, - { - self.as_fields().serialize(serializer) - } -} -#[derive(Serialize)] -pub struct HtmlNameFields { - pub value_token: SyntaxResult, -} -#[derive(Clone, PartialEq, Eq, Hash)] pub struct HtmlOpeningElement { pub(crate) syntax: SyntaxNode, } @@ -449,7 +449,7 @@ impl HtmlOpeningElement { pub fn l_angle_token(&self) -> SyntaxResult { support::required_token(&self.syntax, 0usize) } - pub fn name(&self) -> SyntaxResult { + pub fn name(&self) -> SyntaxResult { support::required_node(&self.syntax, 1usize) } pub fn attributes(&self) -> HtmlAttributeList { @@ -470,7 +470,7 @@ impl Serialize for HtmlOpeningElement { #[derive(Serialize)] pub struct HtmlOpeningElementFields { pub l_angle_token: SyntaxResult, - pub name: SyntaxResult, + pub name: SyntaxResult, pub attributes: HtmlAttributeList, pub r_angle_token: SyntaxResult, } @@ -550,7 +550,7 @@ impl HtmlSelfClosingElement { pub fn l_angle_token(&self) -> SyntaxResult { support::required_token(&self.syntax, 0usize) } - pub fn name(&self) -> SyntaxResult { + pub fn name(&self) -> SyntaxResult { support::required_node(&self.syntax, 1usize) } pub fn attributes(&self) -> HtmlAttributeList { @@ -574,7 +574,7 @@ impl Serialize for HtmlSelfClosingElement { #[derive(Serialize)] pub struct HtmlSelfClosingElementFields { pub l_angle_token: SyntaxResult, - pub name: SyntaxResult, + pub name: SyntaxResult, pub attributes: HtmlAttributeList, pub slash_token: Option, pub r_angle_token: SyntaxResult, @@ -614,6 +614,41 @@ impl Serialize for HtmlString { pub struct HtmlStringFields { pub value_token: SyntaxResult, } +#[derive(Clone, PartialEq, Eq, Hash)] +pub struct HtmlTagName { + pub(crate) syntax: SyntaxNode, +} +impl HtmlTagName { + #[doc = r" Create an AstNode from a SyntaxNode without checking its kind"] + #[doc = r""] + #[doc = r" # Safety"] + #[doc = r" This function must be guarded with a call to [AstNode::can_cast]"] + #[doc = r" or a match on [SyntaxNode::kind]"] + #[inline] + pub const unsafe fn new_unchecked(syntax: SyntaxNode) -> Self { + Self { syntax } + } + pub fn as_fields(&self) -> HtmlTagNameFields { + HtmlTagNameFields { + value_token: self.value_token(), + } + } + pub fn value_token(&self) -> SyntaxResult { + support::required_token(&self.syntax, 0usize) + } +} +impl Serialize for HtmlTagName { + fn serialize(&self, serializer: S) -> Result + where + S: Serializer, + { + self.as_fields().serialize(serializer) + } +} +#[derive(Serialize)] +pub struct HtmlTagNameFields { + pub value_token: SyntaxResult, +} #[derive(Clone, PartialEq, Eq, Hash, Serialize)] pub enum AnyHtmlAttribute { HtmlAttribute(HtmlAttribute), @@ -779,6 +814,56 @@ impl From for SyntaxElement { n.syntax.into() } } +impl AstNode for HtmlAttributeName { + type Language = Language; + const KIND_SET: SyntaxKindSet = + SyntaxKindSet::from_raw(RawSyntaxKind(HTML_ATTRIBUTE_NAME as u16)); + fn can_cast(kind: SyntaxKind) -> bool { + kind == HTML_ATTRIBUTE_NAME + } + fn cast(syntax: SyntaxNode) -> Option { + if Self::can_cast(syntax.kind()) { + Some(Self { syntax }) + } else { + None + } + } + fn syntax(&self) -> &SyntaxNode { + &self.syntax + } + fn into_syntax(self) -> SyntaxNode { + self.syntax + } +} +impl std::fmt::Debug for HtmlAttributeName { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + thread_local! { static DEPTH : std :: cell :: Cell < u8 > = const { std :: cell :: Cell :: new (0) } }; + let current_depth = DEPTH.get(); + let result = if current_depth < 16 { + DEPTH.set(current_depth + 1); + f.debug_struct("HtmlAttributeName") + .field( + "value_token", + &support::DebugSyntaxResult(self.value_token()), + ) + .finish() + } else { + f.debug_struct("HtmlAttributeName").finish() + }; + DEPTH.set(current_depth); + result + } +} +impl From for SyntaxNode { + fn from(n: HtmlAttributeName) -> SyntaxNode { + n.syntax + } +} +impl From for SyntaxElement { + fn from(n: HtmlAttributeName) -> SyntaxElement { + n.syntax.into() + } +} impl AstNode for HtmlCdataSection { type Language = Language; const KIND_SET: SyntaxKindSet = @@ -1134,56 +1219,6 @@ impl From for SyntaxElement { n.syntax.into() } } -impl AstNode for HtmlName { - type Language = Language; - const KIND_SET: SyntaxKindSet = - SyntaxKindSet::from_raw(RawSyntaxKind(HTML_NAME as u16)); - fn can_cast(kind: SyntaxKind) -> bool { - kind == HTML_NAME - } - fn cast(syntax: SyntaxNode) -> Option { - if Self::can_cast(syntax.kind()) { - Some(Self { syntax }) - } else { - None - } - } - fn syntax(&self) -> &SyntaxNode { - &self.syntax - } - fn into_syntax(self) -> SyntaxNode { - self.syntax - } -} -impl std::fmt::Debug for HtmlName { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - thread_local! { static DEPTH : std :: cell :: Cell < u8 > = const { std :: cell :: Cell :: new (0) } }; - let current_depth = DEPTH.get(); - let result = if current_depth < 16 { - DEPTH.set(current_depth + 1); - f.debug_struct("HtmlName") - .field( - "value_token", - &support::DebugSyntaxResult(self.value_token()), - ) - .finish() - } else { - f.debug_struct("HtmlName").finish() - }; - DEPTH.set(current_depth); - result - } -} -impl From for SyntaxNode { - fn from(n: HtmlName) -> SyntaxNode { - n.syntax - } -} -impl From for SyntaxElement { - fn from(n: HtmlName) -> SyntaxElement { - n.syntax.into() - } -} impl AstNode for HtmlOpeningElement { type Language = Language; const KIND_SET: SyntaxKindSet = @@ -1406,6 +1441,56 @@ impl From for SyntaxElement { n.syntax.into() } } +impl AstNode for HtmlTagName { + type Language = Language; + const KIND_SET: SyntaxKindSet = + SyntaxKindSet::from_raw(RawSyntaxKind(HTML_TAG_NAME as u16)); + fn can_cast(kind: SyntaxKind) -> bool { + kind == HTML_TAG_NAME + } + fn cast(syntax: SyntaxNode) -> Option { + if Self::can_cast(syntax.kind()) { + Some(Self { syntax }) + } else { + None + } + } + fn syntax(&self) -> &SyntaxNode { + &self.syntax + } + fn into_syntax(self) -> SyntaxNode { + self.syntax + } +} +impl std::fmt::Debug for HtmlTagName { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + thread_local! { static DEPTH : std :: cell :: Cell < u8 > = const { std :: cell :: Cell :: new (0) } }; + let current_depth = DEPTH.get(); + let result = if current_depth < 16 { + DEPTH.set(current_depth + 1); + f.debug_struct("HtmlTagName") + .field( + "value_token", + &support::DebugSyntaxResult(self.value_token()), + ) + .finish() + } else { + f.debug_struct("HtmlTagName").finish() + }; + DEPTH.set(current_depth); + result + } +} +impl From for SyntaxNode { + fn from(n: HtmlTagName) -> SyntaxNode { + n.syntax + } +} +impl From for SyntaxElement { + fn from(n: HtmlTagName) -> SyntaxElement { + n.syntax.into() + } +} impl From for AnyHtmlAttribute { fn from(node: HtmlAttribute) -> AnyHtmlAttribute { AnyHtmlAttribute::HtmlAttribute(node) @@ -1602,6 +1687,11 @@ impl std::fmt::Display for HtmlAttributeInitializerClause { std::fmt::Display::fmt(self.syntax(), f) } } +impl std::fmt::Display for HtmlAttributeName { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + std::fmt::Display::fmt(self.syntax(), f) + } +} impl std::fmt::Display for HtmlCdataSection { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { std::fmt::Display::fmt(self.syntax(), f) @@ -1632,11 +1722,6 @@ impl std::fmt::Display for HtmlElement { std::fmt::Display::fmt(self.syntax(), f) } } -impl std::fmt::Display for HtmlName { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - std::fmt::Display::fmt(self.syntax(), f) - } -} impl std::fmt::Display for HtmlOpeningElement { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { std::fmt::Display::fmt(self.syntax(), f) @@ -1657,6 +1742,11 @@ impl std::fmt::Display for HtmlString { std::fmt::Display::fmt(self.syntax(), f) } } +impl std::fmt::Display for HtmlTagName { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + std::fmt::Display::fmt(self.syntax(), f) + } +} #[derive(Clone, PartialEq, Eq, Hash, Serialize)] pub struct HtmlBogus { syntax: SyntaxNode, diff --git a/crates/biome_html_syntax/src/generated/nodes_mut.rs b/crates/biome_html_syntax/src/generated/nodes_mut.rs index 5b6db033d550..fc9071af6c25 100644 --- a/crates/biome_html_syntax/src/generated/nodes_mut.rs +++ b/crates/biome_html_syntax/src/generated/nodes_mut.rs @@ -4,7 +4,7 @@ use crate::{generated::nodes::*, HtmlSyntaxToken as SyntaxToken}; use biome_rowan::AstNode; use std::iter::once; impl HtmlAttribute { - pub fn with_name(self, element: HtmlName) -> Self { + pub fn with_name(self, element: HtmlAttributeName) -> Self { Self::unwrap_cast( self.syntax .splice_slots(0usize..=0usize, once(Some(element.into_syntax().into()))), @@ -31,6 +31,14 @@ impl HtmlAttributeInitializerClause { ) } } +impl HtmlAttributeName { + pub fn with_value_token(self, element: SyntaxToken) -> Self { + Self::unwrap_cast( + self.syntax + .splice_slots(0usize..=0usize, once(Some(element.into()))), + ) + } +} impl HtmlCdataSection { pub fn with_cdata_start_token(self, element: SyntaxToken) -> Self { Self::unwrap_cast( @@ -64,7 +72,7 @@ impl HtmlClosingElement { .splice_slots(1usize..=1usize, once(Some(element.into()))), ) } - pub fn with_name(self, element: HtmlName) -> Self { + pub fn with_name(self, element: HtmlTagName) -> Self { Self::unwrap_cast( self.syntax .splice_slots(2usize..=2usize, once(Some(element.into_syntax().into()))), @@ -175,14 +183,6 @@ impl HtmlElement { ) } } -impl HtmlName { - pub fn with_value_token(self, element: SyntaxToken) -> Self { - Self::unwrap_cast( - self.syntax - .splice_slots(0usize..=0usize, once(Some(element.into()))), - ) - } -} impl HtmlOpeningElement { pub fn with_l_angle_token(self, element: SyntaxToken) -> Self { Self::unwrap_cast( @@ -190,7 +190,7 @@ impl HtmlOpeningElement { .splice_slots(0usize..=0usize, once(Some(element.into()))), ) } - pub fn with_name(self, element: HtmlName) -> Self { + pub fn with_name(self, element: HtmlTagName) -> Self { Self::unwrap_cast( self.syntax .splice_slots(1usize..=1usize, once(Some(element.into_syntax().into()))), @@ -242,7 +242,7 @@ impl HtmlSelfClosingElement { .splice_slots(0usize..=0usize, once(Some(element.into()))), ) } - pub fn with_name(self, element: HtmlName) -> Self { + pub fn with_name(self, element: HtmlTagName) -> Self { Self::unwrap_cast( self.syntax .splice_slots(1usize..=1usize, once(Some(element.into_syntax().into()))), @@ -275,3 +275,11 @@ impl HtmlString { ) } } +impl HtmlTagName { + pub fn with_value_token(self, element: SyntaxToken) -> Self { + Self::unwrap_cast( + self.syntax + .splice_slots(0usize..=0usize, once(Some(element.into()))), + ) + } +} diff --git a/xtask/codegen/html.ungram b/xtask/codegen/html.ungram index 4dc985b1e173..45502a1e656f 100644 --- a/xtask/codegen/html.ungram +++ b/xtask/codegen/html.ungram @@ -76,7 +76,7 @@ AnyHtmlElement = // HtmlSelfClosingElement = '<' - name: HtmlName + name: HtmlTagName attributes: HtmlAttributeList '/'? '>' @@ -91,7 +91,7 @@ HtmlElement = // ^^ ^ HtmlOpeningElement = '<' - name: HtmlName + name: HtmlTagName attributes: HtmlAttributeList '>' @@ -99,7 +99,7 @@ HtmlOpeningElement = HtmlClosingElement = '<' '/' - name: HtmlName + name: HtmlTagName '>' // @@ -126,7 +126,7 @@ AnyHtmlAttribute = | HtmlBogusAttribute HtmlAttribute = - name: HtmlName + name: HtmlAttributeName initializer: HtmlAttributeInitializerClause? @@ -138,5 +138,6 @@ HtmlAttributeInitializerClause = HtmlString = value: 'html_string_literal' -HtmlName = value: 'html_literal' +HtmlTagName = value: 'html_literal' +HtmlAttributeName = value: 'html_literal' HtmlContent = value: 'html_literal' diff --git a/xtask/codegen/src/html_kinds_src.rs b/xtask/codegen/src/html_kinds_src.rs index 7e53202f4837..b62ab4f5de72 100644 --- a/xtask/codegen/src/html_kinds_src.rs +++ b/xtask/codegen/src/html_kinds_src.rs @@ -33,7 +33,8 @@ pub const HTML_KINDS_SRC: KindsSrc = KindsSrc { "HTML_ATTRIBUTE", "HTML_ATTRIBUTE_INITIALIZER_CLAUSE", "HTML_STRING", - "HTML_NAME", + "HTML_TAG_NAME", + "HTML_ATTRIBUTE_NAME", "HTML_ELEMENT_LIST", "HTML_ATTRIBUTE_LIST", "HTML_CONTENT",