diff --git a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxSerializer.cs b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxSerializer.cs
index 36c065246..23674ba26 100644
--- a/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxSerializer.cs
+++ b/src/Microsoft.AspNetCore.Razor.Language/Syntax/SyntaxSerializer.cs
@@ -255,6 +255,8 @@ private static bool ShouldDisplayNodeContent(SyntaxNode node)
node.Kind == SyntaxKind.MarkupTagBlock ||
node.Kind == SyntaxKind.MarkupAttributeBlock ||
node.Kind == SyntaxKind.MarkupMinimizedAttributeBlock ||
+ node.Kind == SyntaxKind.MarkupTagHelperAttribute ||
+ node.Kind == SyntaxKind.MarkupMinimizedTagHelperAttribute ||
node.Kind == SyntaxKind.MarkupLiteralAttributeValue ||
node.Kind == SyntaxKind.MarkupDynamicAttributeValue ||
node.Kind == SyntaxKind.CSharpStatementLiteral ||
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperParseTreeRewriterTest.cs b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperParseTreeRewriterTest.cs
index c5d388de7..8b6c5b0e7 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperParseTreeRewriterTest.cs
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/Legacy/TagHelperParseTreeRewriterTest.cs
@@ -16,15 +16,6 @@ public TagHelperParseTreeRewriterTest()
UseNewSyntaxTree = true;
}
- [Fact]
- public void TestTagHelpers()
- {
- UseNewSyntaxTree = false;
- var document = "
";
- EvaluateData(PartialRequiredParentTags_Descriptors, document);
- UseNewSyntaxTree = true;
- }
-
public static TheoryData GetAttributeNameValuePairsData
{
get
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers1.stree.txt
index e56537a94..be3ea5965 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers1.stree.txt
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers1.stree.txt
@@ -1,8 +1,9 @@
-Markup block - Gen - 7 - (0:0,0)
- Tag block - Gen - 7 - (0:0,0)
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:5
- SyntaxKind.OpenAngle;[<];
- SyntaxKind.Text;[th:];
- SyntaxKind.Whitespace;[ ];
- SyntaxKind.ForwardSlash;[/];
- SyntaxKind.CloseAngle;[>];
+RazorDocument - [0..7)::7 - []
+ MarkupBlock - [0..7)::7
+ MarkupTagBlock - [0..7)::7 - []
+ MarkupTextLiteral - [0..7)::7 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[th:];
+ Whitespace;[ ];
+ ForwardSlash;[/];
+ CloseAngle;[>];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers10.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers10.stree.txt
index e36b2ff45..5807ee6ca 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers10.stree.txt
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers10.stree.txt
@@ -1,13 +1,35 @@
-Markup block - Gen - 47 - (0:0,0)
- Tag block - Gen - 47 - (0:0,0) - th:myth - mythTagHelper
- StartTagAndEndTag - ...
- class - DoubleQuotes
- Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1
- SyntaxKind.Text;[btn];
- SyntaxKind.HtmlTextLiteral - [words and spaces] - [21..37) - FullWidth: 16 - Slots: 1
- SyntaxKind.List - [words and spaces] - [21..37) - FullWidth: 16 - Slots: 5
- SyntaxKind.Text;[words];
- SyntaxKind.Whitespace;[ ];
- SyntaxKind.Text;[and];
- SyntaxKind.Whitespace;[ ];
- SyntaxKind.Text;[spaces];
+RazorDocument - [0..47)::47 - [words and spaces]
+ MarkupBlock - [0..47)::47
+ MarkupTagHelperElement - [0..47)::47 - th:myth[StartTagAndEndTag] - mythTagHelper
+ MarkupTagHelperStartTag - [0..21)::21
+ MarkupTextLiteral - [0..8)::8 - [ - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[th:myth];
+ MarkupTagHelperAttribute - [8..20)::12 - class - DoubleQuotes - [ class="btn"]
+ MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any
+ Whitespace;[ ];
+ MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any
+ Text;[class];
+ Equals;[=];
+ MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any
+ DoubleQuote;["];
+ MarkupTagHelperAttributeValue - [16..19)::3
+ MarkupLiteralAttributeValue - [16..19)::3 - [btn]
+ MarkupTextLiteral - [16..19)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any
+ Text;[btn];
+ MarkupTextLiteral - [19..20)::1 - ["] - Gen - SpanEditHandler;Accepts:Any
+ DoubleQuote;["];
+ MarkupTextLiteral - [20..21)::1 - [>] - Gen - SpanEditHandler;Accepts:Any
+ CloseAngle;[>];
+ MarkupTextLiteral - [21..37)::16 - [words and spaces] - Gen - SpanEditHandler;Accepts:Any
+ Text;[words];
+ Whitespace;[ ];
+ Text;[and];
+ Whitespace;[ ];
+ Text;[spaces];
+ MarkupTagHelperEndTag - [37..47)::10
+ MarkupTextLiteral - [37..47)::10 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ ForwardSlash;[/];
+ Text;[th:myth];
+ CloseAngle;[>];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers11.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers11.stree.txt
index edc4636aa..903b240c5 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers11.stree.txt
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers11.stree.txt
@@ -1,13 +1,34 @@
-Markup block - Gen - 34 - (0:0,0)
- Tag block - Gen - 34 - (0:0,0) - th:myth2 - mythTagHelper2
- SelfClosing -
- bound - DoubleQuotes
- Markup block - Gen - 13 - (17:0,17)
- Markup block - Gen - 13 - (17:0,17)
- Expression block - Gen - 13 - (17:0,17)
- Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (17:0,17) - Tokens:1
- SyntaxKind.Transition;[@];
- Code span - Gen - [DateTime.Now] - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14 - (18:0,18) - Tokens:3
- SyntaxKind.Identifier;[DateTime];
- SyntaxKind.Dot;[.];
- SyntaxKind.Identifier;[Now];
+RazorDocument - [0..34)::34 - []
+ MarkupBlock - [0..34)::34
+ MarkupTagHelperElement - [0..34)::34 - th:myth2[SelfClosing] - mythTagHelper2
+ MarkupTagHelperStartTag - [0..34)::34
+ MarkupTextLiteral - [0..9)::9 - [ - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[th:myth2];
+ MarkupTagHelperAttribute - [9..31)::22 - bound - DoubleQuotes - [ bound="@DateTime.Now"]
+ MarkupTextLiteral - [9..10)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any
+ Whitespace;[ ];
+ MarkupTextLiteral - [10..15)::5 - [bound] - Gen - SpanEditHandler;Accepts:Any
+ Text;[bound];
+ Equals;[=];
+ MarkupTextLiteral - [16..17)::1 - ["] - Gen - SpanEditHandler;Accepts:Any
+ DoubleQuote;["];
+ MarkupTagHelperAttributeValue - [17..30)::13
+ MarkupDynamicAttributeValue - [17..30)::13 - [@DateTime.Now]
+ GenericBlock - [17..30)::13
+ CSharpCodeBlock - [17..30)::13
+ CSharpImplicitExpression - [17..30)::13
+ CSharpTransition - [17..18)::1 - Gen - SpanEditHandler;Accepts:None
+ Transition;[@];
+ CSharpImplicitExpressionBody - [18..30)::12
+ CSharpCodeBlock - [18..30)::12
+ CSharpExpressionLiteral - [18..30)::12 - [DateTime.Now] - Gen - ImplicitExpressionEditHandler;Accepts:AnyExceptNewline;ImplicitExpression[ATD];K14
+ Identifier;[DateTime];
+ Dot;[.];
+ Identifier;[Now];
+ MarkupTextLiteral - [30..31)::1 - ["] - Gen - SpanEditHandler;Accepts:Any
+ DoubleQuote;["];
+ MarkupTextLiteral - [31..34)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any
+ Whitespace;[ ];
+ ForwardSlash;[/];
+ CloseAngle;[>];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers2.stree.txt
index 8f244a612..5e102b0e0 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers2.stree.txt
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers2.stree.txt
@@ -1,19 +1,19 @@
-Markup block - Gen - 27 - (0:0,0)
- Tag block - Gen - 5 - (0:0,0)
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:3
- SyntaxKind.OpenAngle;[<];
- SyntaxKind.Text;[th:];
- SyntaxKind.CloseAngle;[>];
- SyntaxKind.HtmlTextLiteral - [words and spaces] - [5..21) - FullWidth: 16 - Slots: 1
- SyntaxKind.List - [words and spaces] - [5..21) - FullWidth: 16 - Slots: 5
- SyntaxKind.Text;[words];
- SyntaxKind.Whitespace;[ ];
- SyntaxKind.Text;[and];
- SyntaxKind.Whitespace;[ ];
- SyntaxKind.Text;[spaces];
- Tag block - Gen - 6 - (21:0,21)
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:4
- SyntaxKind.OpenAngle;[<];
- SyntaxKind.ForwardSlash;[/];
- SyntaxKind.Text;[th:];
- SyntaxKind.CloseAngle;[>];
+RazorDocument - [0..27)::27 - [words and spaces]
+ MarkupBlock - [0..27)::27
+ MarkupTagBlock - [0..5)::5 - []
+ MarkupTextLiteral - [0..5)::5 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[th:];
+ CloseAngle;[>];
+ MarkupTextLiteral - [5..21)::16 - [words and spaces] - Gen - SpanEditHandler;Accepts:Any
+ Text;[words];
+ Whitespace;[ ];
+ Text;[and];
+ Whitespace;[ ];
+ Text;[spaces];
+ MarkupTagBlock - [21..27)::6 - []
+ MarkupTextLiteral - [21..27)::6 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ ForwardSlash;[/];
+ Text;[th:];
+ CloseAngle;[>];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers3.stree.txt
index 6fa88c654..b6594f700 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers3.stree.txt
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers3.stree.txt
@@ -1,3 +1,10 @@
-Markup block - Gen - 11 - (0:0,0)
- Tag block - Gen - 11 - (0:0,0) - th:myth - mythTagHelper
- SelfClosing -
+RazorDocument - [0..11)::11 - []
+ MarkupBlock - [0..11)::11
+ MarkupTagHelperElement - [0..11)::11 - th:myth[SelfClosing] - mythTagHelper
+ MarkupTagHelperStartTag - [0..11)::11
+ MarkupTextLiteral - [0..11)::11 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[th:myth];
+ Whitespace;[ ];
+ ForwardSlash;[/];
+ CloseAngle;[>];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers4.stree.txt
index 25308b73b..b53776a02 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers4.stree.txt
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers4.stree.txt
@@ -1,3 +1,14 @@
-Markup block - Gen - 19 - (0:0,0)
- Tag block - Gen - 19 - (0:0,0) - th:myth - mythTagHelper
- StartTagAndEndTag - ...
+RazorDocument - [0..19)::19 - []
+ MarkupBlock - [0..19)::19
+ MarkupTagHelperElement - [0..19)::19 - th:myth[StartTagAndEndTag] - mythTagHelper
+ MarkupTagHelperStartTag - [0..9)::9
+ MarkupTextLiteral - [0..9)::9 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[th:myth];
+ CloseAngle;[>];
+ MarkupTagHelperEndTag - [9..19)::10
+ MarkupTextLiteral - [9..19)::10 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ ForwardSlash;[/];
+ Text;[th:myth];
+ CloseAngle;[>];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers5.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers5.stree.txt
index aa4726272..734aa8511 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers5.stree.txt
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers5.stree.txt
@@ -1,14 +1,25 @@
-Markup block - Gen - 40 - (0:0,0)
- Tag block - Gen - 40 - (0:0,0) - th:myth - mythTagHelper
- StartTagAndEndTag - ...
- Tag block - Gen - 10 - (9:0,9)
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (9:0,9) - Tokens:3
- SyntaxKind.OpenAngle;[<];
- SyntaxKind.Text;[th:my2th];
- SyntaxKind.CloseAngle;[>];
- Tag block - Gen - 11 - (19:0,19)
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:4
- SyntaxKind.OpenAngle;[<];
- SyntaxKind.ForwardSlash;[/];
- SyntaxKind.Text;[th:my2th];
- SyntaxKind.CloseAngle;[>];
+RazorDocument - [0..40)::40 - []
+ MarkupBlock - [0..40)::40
+ MarkupTagHelperElement - [0..40)::40 - th:myth[StartTagAndEndTag] - mythTagHelper
+ MarkupTagHelperStartTag - [0..9)::9
+ MarkupTextLiteral - [0..9)::9 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[th:myth];
+ CloseAngle;[>];
+ MarkupTagBlock - [9..19)::10 - []
+ MarkupTextLiteral - [9..19)::10 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[th:my2th];
+ CloseAngle;[>];
+ MarkupTagBlock - [19..30)::11 - []
+ MarkupTextLiteral - [19..30)::11 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ ForwardSlash;[/];
+ Text;[th:my2th];
+ CloseAngle;[>];
+ MarkupTagHelperEndTag - [30..40)::10
+ MarkupTextLiteral - [30..40)::10 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ ForwardSlash;[/];
+ Text;[th:myth];
+ CloseAngle;[>];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers6.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers6.stree.txt
index 541d6b999..9a36af554 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers6.stree.txt
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers6.stree.txt
@@ -1,11 +1,12 @@
-Markup block - Gen - 12 - (0:0,0)
- Tag block - Gen - 12 - (0:0,0)
- Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1
- SyntaxKind.OpenAngle;[<];
- MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1
- SyntaxKind.Bang;[!];
- Markup span - Gen - [th:myth />] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:4
- SyntaxKind.Text;[th:myth];
- SyntaxKind.Whitespace;[ ];
- SyntaxKind.ForwardSlash;[/];
- SyntaxKind.CloseAngle;[>];
+RazorDocument - [0..12)::12 - []
+ MarkupBlock - [0..12)::12
+ MarkupTagBlock - [0..12)::12 - []
+ MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None
+ Bang;[!];
+ MarkupTextLiteral - [2..12)::10 - [th:myth />] - Gen - SpanEditHandler;Accepts:Any
+ Text;[th:myth];
+ Whitespace;[ ];
+ ForwardSlash;[/];
+ CloseAngle;[>];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers7.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers7.stree.txt
index e0fd9882b..29d040629 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers7.stree.txt
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers7.stree.txt
@@ -1,18 +1,19 @@
-Markup block - Gen - 21 - (0:0,0)
- Tag block - Gen - 10 - (0:0,0)
- Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1
- SyntaxKind.OpenAngle;[<];
- MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1
- SyntaxKind.Bang;[!];
- Markup span - Gen - [th:myth>] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:2
- SyntaxKind.Text;[th:myth];
- SyntaxKind.CloseAngle;[>];
- Tag block - Gen - 11 - (10:0,10)
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:2
- SyntaxKind.OpenAngle;[<];
- SyntaxKind.ForwardSlash;[/];
- MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (12:0,12) - Tokens:1
- SyntaxKind.Bang;[!];
- Markup span - Gen - [th:myth>] - SpanEditHandler;Accepts:Any - (13:0,13) - Tokens:2
- SyntaxKind.Text;[th:myth];
- SyntaxKind.CloseAngle;[>];
+RazorDocument - [0..21)::21 - [!th:myth>]
+ MarkupBlock - [0..21)::21
+ MarkupTagBlock - [0..10)::10 - []
+ MarkupTextLiteral - [0..1)::1 - [<] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None
+ Bang;[!];
+ MarkupTextLiteral - [2..10)::8 - [th:myth>] - Gen - SpanEditHandler;Accepts:Any
+ Text;[th:myth];
+ CloseAngle;[>];
+ MarkupTagBlock - [10..21)::11 - [!th:myth>]
+ MarkupTextLiteral - [10..12)::2 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ ForwardSlash;[/];
+ RazorMetaCode - [12..13)::1 - Gen - SpanEditHandler;Accepts:None
+ Bang;[!];
+ MarkupTextLiteral - [13..21)::8 - [th:myth>] - Gen - SpanEditHandler;Accepts:Any
+ Text;[th:myth];
+ CloseAngle;[>];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers8.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers8.stree.txt
index b27544e31..bdca4bc7c 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers8.stree.txt
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers8.stree.txt
@@ -1,6 +1,25 @@
-Markup block - Gen - 23 - (0:0,0)
- Tag block - Gen - 23 - (0:0,0) - th:myth - mythTagHelper
- SelfClosing -
- class - DoubleQuotes
- Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1
- SyntaxKind.Text;[btn];
+RazorDocument - [0..23)::23 - []
+ MarkupBlock - [0..23)::23
+ MarkupTagHelperElement - [0..23)::23 - th:myth[SelfClosing] - mythTagHelper
+ MarkupTagHelperStartTag - [0..23)::23
+ MarkupTextLiteral - [0..8)::8 - [ - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[th:myth];
+ MarkupTagHelperAttribute - [8..20)::12 - class - DoubleQuotes - [ class="btn"]
+ MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any
+ Whitespace;[ ];
+ MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any
+ Text;[class];
+ Equals;[=];
+ MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any
+ DoubleQuote;["];
+ MarkupTagHelperAttributeValue - [16..19)::3
+ MarkupLiteralAttributeValue - [16..19)::3 - [btn]
+ MarkupTextLiteral - [16..19)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any
+ Text;[btn];
+ MarkupTextLiteral - [19..20)::1 - ["] - Gen - SpanEditHandler;Accepts:Any
+ DoubleQuote;["];
+ MarkupTextLiteral - [20..23)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any
+ Whitespace;[ ];
+ ForwardSlash;[/];
+ CloseAngle;[>];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers9.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers9.stree.txt
index c2cc6ba69..23d91b718 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers9.stree.txt
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsPrefixedTagHelpers9.stree.txt
@@ -1,6 +1,25 @@
-Markup block - Gen - 24 - (0:0,0)
- Tag block - Gen - 24 - (0:0,0) - th:myth2 - mythTagHelper2
- SelfClosing -
- class - DoubleQuotes
- Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (17:0,17) - Tokens:1
- SyntaxKind.Text;[btn];
+RazorDocument - [0..24)::24 - []
+ MarkupBlock - [0..24)::24
+ MarkupTagHelperElement - [0..24)::24 - th:myth2[SelfClosing] - mythTagHelper2
+ MarkupTagHelperStartTag - [0..24)::24
+ MarkupTextLiteral - [0..9)::9 - [ - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[th:myth2];
+ MarkupTagHelperAttribute - [9..21)::12 - class - DoubleQuotes - [ class="btn"]
+ MarkupTextLiteral - [9..10)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any
+ Whitespace;[ ];
+ MarkupTextLiteral - [10..15)::5 - [class] - Gen - SpanEditHandler;Accepts:Any
+ Text;[class];
+ Equals;[=];
+ MarkupTextLiteral - [16..17)::1 - ["] - Gen - SpanEditHandler;Accepts:Any
+ DoubleQuote;["];
+ MarkupTagHelperAttributeValue - [17..20)::3
+ MarkupLiteralAttributeValue - [17..20)::3 - [btn]
+ MarkupTextLiteral - [17..20)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any
+ Text;[btn];
+ MarkupTextLiteral - [20..21)::1 - ["] - Gen - SpanEditHandler;Accepts:Any
+ DoubleQuote;["];
+ MarkupTextLiteral - [21..24)::3 - [ />] - Gen - SpanEditHandler;Accepts:Any
+ Whitespace;[ ];
+ ForwardSlash;[/];
+ CloseAngle;[>];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsRazorCommentsAsChildren.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsRazorCommentsAsChildren.stree.txt
index 06caab940..ab4530e89 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsRazorCommentsAsChildren.stree.txt
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsRazorCommentsAsChildren.stree.txt
@@ -1,27 +1,33 @@
-Markup block - Gen - 26 - (0:0,0)
- Tag block - Gen - 26 - (0:0,0) - p - PTagHelper
- StartTagAndEndTag - ...
- Tag block - Gen - 3 - (3:0,3)
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:3
- SyntaxKind.OpenAngle;[<];
- SyntaxKind.Text;[b];
- SyntaxKind.CloseAngle;[>];
- SyntaxKind.HtmlTextLiteral - [asdf] - [6..10) - FullWidth: 4 - Slots: 1
- SyntaxKind.Text;[asdf];
- Tag block - Gen - 4 - (10:0,10)
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:4
- SyntaxKind.OpenAngle;[<];
- SyntaxKind.ForwardSlash;[/];
- SyntaxKind.Text;[b];
- SyntaxKind.CloseAngle;[>];
- Comment block - Gen - 8 - (14:0,14)
- Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (14:0,14) - Tokens:1
- SyntaxKind.RazorCommentTransition;[@];
- MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (15:0,15) - Tokens:1
- SyntaxKind.RazorCommentStar;[*];
- Comment span - Gen - [asdf] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1
- SyntaxKind.RazorCommentLiteral;[asdf];
- MetaCode span - Gen - [*] - SpanEditHandler;Accepts:None - (20:0,20) - Tokens:1
- SyntaxKind.RazorCommentStar;[*];
- Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (21:0,21) - Tokens:1
- SyntaxKind.RazorCommentTransition;[@];
+RazorDocument - [0..26)::26 - [asdf@*asdf*@
]
+ MarkupBlock - [0..26)::26
+ MarkupTagHelperElement - [0..26)::26 - p[StartTagAndEndTag] - PTagHelper
+ MarkupTagHelperStartTag - [0..3)::3
+ MarkupTextLiteral - [0..3)::3 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[p];
+ CloseAngle;[>];
+ MarkupTagBlock - [3..6)::3 - []
+ MarkupTextLiteral - [3..6)::3 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[b];
+ CloseAngle;[>];
+ MarkupTextLiteral - [6..10)::4 - [asdf] - Gen - SpanEditHandler;Accepts:Any
+ Text;[asdf];
+ MarkupTagBlock - [10..14)::4 - []
+ MarkupTextLiteral - [10..14)::4 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ ForwardSlash;[/];
+ Text;[b];
+ CloseAngle;[>];
+ RazorComment - [14..22)::8
+ RazorCommentTransition;[@];
+ RazorCommentStar;[*];
+ RazorCommentLiteral;[asdf];
+ RazorCommentStar;[*];
+ RazorCommentTransition;[@];
+ MarkupTagHelperEndTag - [22..26)::4
+ MarkupTextLiteral - [22..26)::4 - [
] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ ForwardSlash;[/];
+ Text;[p];
+ CloseAngle;[>];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsRazorMarkupInHtmlComment.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsRazorMarkupInHtmlComment.stree.txt
index b1006157b..113f4d153 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsRazorMarkupInHtmlComment.stree.txt
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsRazorMarkupInHtmlComment.stree.txt
@@ -1,32 +1,46 @@
-Markup block - Gen - 37 - (0:0,0)
- Tag block - Gen - 37 - (0:0,0) - p - PTagHelper
- StartTagAndEndTag - ...
- Tag block - Gen - 3 - (3:0,3)
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:3
- SyntaxKind.OpenAngle;[<];
- SyntaxKind.Text;[b];
- SyntaxKind.CloseAngle;[>];
- SyntaxKind.HtmlTextLiteral - [asdf] - [6..10) - FullWidth: 4 - Slots: 1
- SyntaxKind.Text;[asdf];
- Tag block - Gen - 4 - (10:0,10)
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:4
- SyntaxKind.OpenAngle;[<];
- SyntaxKind.ForwardSlash;[/];
- SyntaxKind.Text;[b];
- SyntaxKind.CloseAngle;[>];
- HtmlComment block - Gen - 19 - (14:0,14)
- Markup span - Gen - [] - SpanEditHandler;Accepts:None - (30:0,30) - Tokens:2
- SyntaxKind.DoubleHyphen;[--];
- SyntaxKind.CloseAngle;[>];
+RazorDocument - [0..37)::37 - [asdf
]
+ MarkupBlock - [0..37)::37
+ MarkupTagHelperElement - [0..37)::37 - p[StartTagAndEndTag] - PTagHelper
+ MarkupTagHelperStartTag - [0..3)::3
+ MarkupTextLiteral - [0..3)::3 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[p];
+ CloseAngle;[>];
+ MarkupTagBlock - [3..6)::3 - []
+ MarkupTextLiteral - [3..6)::3 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[b];
+ CloseAngle;[>];
+ MarkupTextLiteral - [6..10)::4 - [asdf] - Gen - SpanEditHandler;Accepts:Any
+ Text;[asdf];
+ MarkupTagBlock - [10..14)::4 - []
+ MarkupTextLiteral - [10..14)::4 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ ForwardSlash;[/];
+ Text;[b];
+ CloseAngle;[>];
+ MarkupCommentBlock - [14..33)::19
+ MarkupTextLiteral - [14..18)::4 - [] - Gen - SpanEditHandler;Accepts:None
+ DoubleHyphen;[--];
+ CloseAngle;[>];
+ MarkupTagHelperEndTag - [33..37)::4
+ MarkupTextLiteral - [33..37)::4 - [
] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ ForwardSlash;[/];
+ Text;[p];
+ CloseAngle;[>];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsSimpleHtmlCommentsAsChildren.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsSimpleHtmlCommentsAsChildren.stree.txt
index 41643cef9..b74bc809e 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsSimpleHtmlCommentsAsChildren.stree.txt
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsSimpleHtmlCommentsAsChildren.stree.txt
@@ -1,28 +1,39 @@
-Markup block - Gen - 36 - (0:0,0)
- Tag block - Gen - 36 - (0:0,0) - p - PTagHelper
- StartTagAndEndTag - ...
- Tag block - Gen - 3 - (3:0,3)
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (3:0,3) - Tokens:3
- SyntaxKind.OpenAngle;[<];
- SyntaxKind.Text;[b];
- SyntaxKind.CloseAngle;[>];
- SyntaxKind.HtmlTextLiteral - [asdf] - [6..10) - FullWidth: 4 - Slots: 1
- SyntaxKind.Text;[asdf];
- Tag block - Gen - 4 - (10:0,10)
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (10:0,10) - Tokens:4
- SyntaxKind.OpenAngle;[<];
- SyntaxKind.ForwardSlash;[/];
- SyntaxKind.Text;[b];
- SyntaxKind.CloseAngle;[>];
- HtmlComment block - Gen - 18 - (14:0,14)
- Markup span - Gen - [] - SpanEditHandler;Accepts:None - (29:0,29) - Tokens:2
- SyntaxKind.DoubleHyphen;[--];
- SyntaxKind.CloseAngle;[>];
+RazorDocument - [0..36)::36 - [asdf
]
+ MarkupBlock - [0..36)::36
+ MarkupTagHelperElement - [0..36)::36 - p[StartTagAndEndTag] - PTagHelper
+ MarkupTagHelperStartTag - [0..3)::3
+ MarkupTextLiteral - [0..3)::3 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[p];
+ CloseAngle;[>];
+ MarkupTagBlock - [3..6)::3 - []
+ MarkupTextLiteral - [3..6)::3 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ Text;[b];
+ CloseAngle;[>];
+ MarkupTextLiteral - [6..10)::4 - [asdf] - Gen - SpanEditHandler;Accepts:Any
+ Text;[asdf];
+ MarkupTagBlock - [10..14)::4 - []
+ MarkupTextLiteral - [10..14)::4 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ ForwardSlash;[/];
+ Text;[b];
+ CloseAngle;[>];
+ MarkupCommentBlock - [14..32)::18
+ MarkupTextLiteral - [14..18)::4 - [] - Gen - SpanEditHandler;Accepts:None
+ DoubleHyphen;[--];
+ CloseAngle;[>];
+ MarkupTagHelperEndTag - [32..36)::4
+ MarkupTextLiteral - [32..36)::4 - [
] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ ForwardSlash;[/];
+ Text;[p];
+ CloseAngle;[>];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag1.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag1.stree.txt
index 7e1625642..1820cae1f 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag1.stree.txt
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag1.stree.txt
@@ -1,30 +1,40 @@
-Markup block - Gen - 22 - (0:0,0)
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1
- SyntaxKind.Unknown;[];
- Statement block - Gen - 22 - (0:0,0)
- Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1
- SyntaxKind.Transition;[@];
- MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1
- SyntaxKind.LeftBrace;[{];
- Markup block - Gen - 20 - (2:0,2)
- Tag block - Gen - 19 - (2:0,2)
- Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1
- SyntaxKind.OpenAngle;[<];
- MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1
- SyntaxKind.Bang;[!];
- Markup span - Gen - [text] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1
- SyntaxKind.Text;[text];
- Markup block - Gen - 12 - (8:0,8)
- Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:4
- SyntaxKind.Whitespace;[ ];
- SyntaxKind.Text;[class];
- SyntaxKind.Equals;[=];
- SyntaxKind.DoubleQuote;["];
- Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1
- SyntaxKind.Text;[btn];
- Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1
- SyntaxKind.DoubleQuote;["];
- Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (20:0,20) - Tokens:1
- SyntaxKind.CloseAngle;[>];
- Markup span - Gen - [}] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:1
- SyntaxKind.Text;[}];
+RazorDocument - [0..22)::22 - [@{}]
+ MarkupBlock - [0..22)::22
+ MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any
+ Marker;[];
+ CSharpCodeBlock - [0..22)::22
+ CSharpStatement - [0..22)::22
+ CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None
+ Transition;[@];
+ CSharpStatementBody - [1..22)::21
+ RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None
+ LeftBrace;[{];
+ CSharpCodeBlock - [2..22)::20
+ MarkupBlock - [2..22)::20
+ MarkupTagBlock - [2..21)::19 - []
+ MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None
+ Bang;[!];
+ MarkupTextLiteral - [4..8)::4 - [text] - Gen - SpanEditHandler;Accepts:Any
+ Text;[text];
+ MarkupAttributeBlock - [8..20)::12 - [ class="btn"]
+ MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any
+ Whitespace;[ ];
+ MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any
+ Text;[class];
+ Equals;[=];
+ MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any
+ DoubleQuote;["];
+ GenericBlock - [16..19)::3
+ MarkupLiteralAttributeValue - [16..19)::3 - [btn]
+ MarkupTextLiteral - [16..19)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any
+ Text;[btn];
+ MarkupTextLiteral - [19..20)::1 - ["] - Gen - SpanEditHandler;Accepts:Any
+ DoubleQuote;["];
+ MarkupTextLiteral - [20..21)::1 - [>] - Gen - SpanEditHandler;Accepts:None
+ CloseAngle;[>];
+ MarkupTextLiteral - [21..22)::1 - [}] - Gen - SpanEditHandler;Accepts:Any
+ Text;[}];
+ RazorMetaCode - [22..22)::0 - Gen - SpanEditHandler;Accepts:Any
+ RightBrace;[];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag2.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag2.stree.txt
index 67597040c..cbdf9ea72 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag2.stree.txt
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag2.stree.txt
@@ -1,43 +1,51 @@
-Markup block - Gen - 30 - (0:0,0)
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1
- SyntaxKind.Unknown;[];
- Statement block - Gen - 30 - (0:0,0)
- Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1
- SyntaxKind.Transition;[@];
- MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1
- SyntaxKind.LeftBrace;[{];
- Markup block - Gen - 27 - (2:0,2)
- Tag block - Gen - 19 - (2:0,2)
- Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1
- SyntaxKind.OpenAngle;[<];
- MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1
- SyntaxKind.Bang;[!];
- Markup span - Gen - [text] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1
- SyntaxKind.Text;[text];
- Markup block - Gen - 12 - (8:0,8)
- Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:4
- SyntaxKind.Whitespace;[ ];
- SyntaxKind.Text;[class];
- SyntaxKind.Equals;[=];
- SyntaxKind.DoubleQuote;["];
- Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1
- SyntaxKind.Text;[btn];
- Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1
- SyntaxKind.DoubleQuote;["];
- Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (20:0,20) - Tokens:1
- SyntaxKind.CloseAngle;[>];
- Tag block - Gen - 8 - (21:0,21)
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:2
- SyntaxKind.OpenAngle;[<];
- SyntaxKind.ForwardSlash;[/];
- MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (23:0,23) - Tokens:1
- SyntaxKind.Bang;[!];
- Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (24:0,24) - Tokens:2
- SyntaxKind.Text;[text];
- SyntaxKind.CloseAngle;[>];
- Code span - Gen - [] - SpanEditHandler;Accepts:Any - (29:0,29) - Tokens:1
- SyntaxKind.Unknown;[];
- MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (29:0,29) - Tokens:1
- SyntaxKind.RightBrace;[}];
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (30:0,30) - Tokens:1
- SyntaxKind.Unknown;[];
+RazorDocument - [0..30)::30 - [@{!text>}]
+ MarkupBlock - [0..30)::30
+ MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any
+ Marker;[];
+ CSharpCodeBlock - [0..30)::30
+ CSharpStatement - [0..30)::30
+ CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None
+ Transition;[@];
+ CSharpStatementBody - [1..30)::29
+ RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None
+ LeftBrace;[{];
+ CSharpCodeBlock - [2..29)::27
+ MarkupBlock - [2..29)::27
+ MarkupTagBlock - [2..21)::19 - []
+ MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None
+ Bang;[!];
+ MarkupTextLiteral - [4..8)::4 - [text] - Gen - SpanEditHandler;Accepts:Any
+ Text;[text];
+ MarkupAttributeBlock - [8..20)::12 - [ class="btn"]
+ MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any
+ Whitespace;[ ];
+ MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any
+ Text;[class];
+ Equals;[=];
+ MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any
+ DoubleQuote;["];
+ GenericBlock - [16..19)::3
+ MarkupLiteralAttributeValue - [16..19)::3 - [btn]
+ MarkupTextLiteral - [16..19)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any
+ Text;[btn];
+ MarkupTextLiteral - [19..20)::1 - ["] - Gen - SpanEditHandler;Accepts:Any
+ DoubleQuote;["];
+ MarkupTextLiteral - [20..21)::1 - [>] - Gen - SpanEditHandler;Accepts:None
+ CloseAngle;[>];
+ MarkupTagBlock - [21..29)::8 - [!text>]
+ MarkupTextLiteral - [21..23)::2 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ ForwardSlash;[/];
+ RazorMetaCode - [23..24)::1 - Gen - SpanEditHandler;Accepts:None
+ Bang;[!];
+ MarkupTextLiteral - [24..29)::5 - [text>] - Gen - SpanEditHandler;Accepts:None
+ Text;[text];
+ CloseAngle;[>];
+ CSharpStatementLiteral - [29..29)::0 - [] - Gen - SpanEditHandler;Accepts:Any
+ Marker;[];
+ RazorMetaCode - [29..30)::1 - Gen - SpanEditHandler;Accepts:None
+ RightBrace;[}];
+ MarkupTextLiteral - [30..30)::0 - [] - Gen - SpanEditHandler;Accepts:Any
+ Marker;[];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag3.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag3.stree.txt
index 6468ec902..9ccfbc308 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag3.stree.txt
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag3.stree.txt
@@ -1,49 +1,57 @@
-Markup block - Gen - 47 - (0:0,0)
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1
- SyntaxKind.Unknown;[];
- Statement block - Gen - 47 - (0:0,0)
- Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1
- SyntaxKind.Transition;[@];
- MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1
- SyntaxKind.LeftBrace;[{];
- Markup block - Gen - 44 - (2:0,2)
- Tag block - Gen - 19 - (2:0,2)
- Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1
- SyntaxKind.OpenAngle;[<];
- MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1
- SyntaxKind.Bang;[!];
- Markup span - Gen - [text] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1
- SyntaxKind.Text;[text];
- Markup block - Gen - 12 - (8:0,8)
- Markup span - Gen - [ class="] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:4
- SyntaxKind.Whitespace;[ ];
- SyntaxKind.Text;[class];
- SyntaxKind.Equals;[=];
- SyntaxKind.DoubleQuote;["];
- Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1
- SyntaxKind.Text;[btn];
- Markup span - Gen - ["] - SpanEditHandler;Accepts:Any - (19:0,19) - Tokens:1
- SyntaxKind.DoubleQuote;["];
- Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (20:0,20) - Tokens:1
- SyntaxKind.CloseAngle;[>];
- Markup span - Gen - [words with spaces] - SpanEditHandler;Accepts:Any - (21:0,21) - Tokens:5
- SyntaxKind.Text;[words];
- SyntaxKind.Whitespace;[ ];
- SyntaxKind.Text;[with];
- SyntaxKind.Whitespace;[ ];
- SyntaxKind.Text;[spaces];
- Tag block - Gen - 8 - (38:0,38)
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (38:0,38) - Tokens:2
- SyntaxKind.OpenAngle;[<];
- SyntaxKind.ForwardSlash;[/];
- MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (40:0,40) - Tokens:1
- SyntaxKind.Bang;[!];
- Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (41:0,41) - Tokens:2
- SyntaxKind.Text;[text];
- SyntaxKind.CloseAngle;[>];
- Code span - Gen - [] - SpanEditHandler;Accepts:Any - (46:0,46) - Tokens:1
- SyntaxKind.Unknown;[];
- MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (46:0,46) - Tokens:1
- SyntaxKind.RightBrace;[}];
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (47:0,47) - Tokens:1
- SyntaxKind.Unknown;[];
+RazorDocument - [0..47)::47 - [@{words with spaces!text>}]
+ MarkupBlock - [0..47)::47
+ MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any
+ Marker;[];
+ CSharpCodeBlock - [0..47)::47
+ CSharpStatement - [0..47)::47
+ CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None
+ Transition;[@];
+ CSharpStatementBody - [1..47)::46
+ RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None
+ LeftBrace;[{];
+ CSharpCodeBlock - [2..46)::44
+ MarkupBlock - [2..46)::44
+ MarkupTagBlock - [2..21)::19 - []
+ MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None
+ Bang;[!];
+ MarkupTextLiteral - [4..8)::4 - [text] - Gen - SpanEditHandler;Accepts:Any
+ Text;[text];
+ MarkupAttributeBlock - [8..20)::12 - [ class="btn"]
+ MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any
+ Whitespace;[ ];
+ MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any
+ Text;[class];
+ Equals;[=];
+ MarkupTextLiteral - [15..16)::1 - ["] - Gen - SpanEditHandler;Accepts:Any
+ DoubleQuote;["];
+ GenericBlock - [16..19)::3
+ MarkupLiteralAttributeValue - [16..19)::3 - [btn]
+ MarkupTextLiteral - [16..19)::3 - [btn] - Gen - SpanEditHandler;Accepts:Any
+ Text;[btn];
+ MarkupTextLiteral - [19..20)::1 - ["] - Gen - SpanEditHandler;Accepts:Any
+ DoubleQuote;["];
+ MarkupTextLiteral - [20..21)::1 - [>] - Gen - SpanEditHandler;Accepts:None
+ CloseAngle;[>];
+ MarkupTextLiteral - [21..38)::17 - [words with spaces] - Gen - SpanEditHandler;Accepts:Any
+ Text;[words];
+ Whitespace;[ ];
+ Text;[with];
+ Whitespace;[ ];
+ Text;[spaces];
+ MarkupTagBlock - [38..46)::8 - [!text>]
+ MarkupTextLiteral - [38..40)::2 - [] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ ForwardSlash;[/];
+ RazorMetaCode - [40..41)::1 - Gen - SpanEditHandler;Accepts:None
+ Bang;[!];
+ MarkupTextLiteral - [41..46)::5 - [text>] - Gen - SpanEditHandler;Accepts:None
+ Text;[text];
+ CloseAngle;[>];
+ CSharpStatementLiteral - [46..46)::0 - [] - Gen - SpanEditHandler;Accepts:Any
+ Marker;[];
+ RazorMetaCode - [46..47)::1 - Gen - SpanEditHandler;Accepts:None
+ RightBrace;[}];
+ MarkupTextLiteral - [47..47)::0 - [] - Gen - SpanEditHandler;Accepts:Any
+ Marker;[];
diff --git a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag4.stree.txt b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag4.stree.txt
index 7f34c4efd..fd66721f5 100644
--- a/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag4.stree.txt
+++ b/test/Microsoft.AspNetCore.Razor.Language.Test/TestFiles/ParserTests/TagHelperParseTreeRewriterTest/AllowsTHElementOptForCompleteTextTagInCSharpBlock_WithAttrTextTag4.stree.txt
@@ -1,53 +1,66 @@
-Markup block - Gen - 47 - (0:0,0)
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (0:0,0) - Tokens:1
- SyntaxKind.Unknown;[];
- Statement block - Gen - 47 - (0:0,0)
- Transition span - Gen - [@] - SpanEditHandler;Accepts:None - (0:0,0) - Tokens:1
- SyntaxKind.Transition;[@];
- MetaCode span - Gen - [{] - SpanEditHandler;Accepts:None - (1:0,1) - Tokens:1
- SyntaxKind.LeftBrace;[{];
- Markup block - Gen - 44 - (2:0,2)
- Tag block - Gen - 36 - (2:0,2)
- Markup span - Gen - [<] - SpanEditHandler;Accepts:Any - (2:0,2) - Tokens:1
- SyntaxKind.OpenAngle;[<];
- MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (3:0,3) - Tokens:1
- SyntaxKind.Bang;[!];
- Markup span - Gen - [text] - SpanEditHandler;Accepts:Any - (4:0,4) - Tokens:1
- SyntaxKind.Text;[text];
- Markup block - Gen - 18 - (8:0,8)
- Markup span - Gen - [ class='] - SpanEditHandler;Accepts:Any - (8:0,8) - Tokens:4
- SyntaxKind.Whitespace;[ ];
- SyntaxKind.Text;[class];
- SyntaxKind.Equals;[=];
- SyntaxKind.SingleQuote;['];
- Markup span - Gen - [btn1] - SpanEditHandler;Accepts:Any - (16:0,16) - Tokens:1
- SyntaxKind.Text;[btn1];
- Markup span - Gen - [ btn2] - SpanEditHandler;Accepts:Any - (20:0,20) - Tokens:2
- SyntaxKind.Whitespace;[ ];
- SyntaxKind.Text;[btn2];
- Markup span - Gen - ['] - SpanEditHandler;Accepts:Any - (25:0,25) - Tokens:1
- SyntaxKind.SingleQuote;['];
- Markup block - Gen - 11 - (26:0,26)
- Markup span - Gen - [ class2=] - SpanEditHandler;Accepts:Any - (26:0,26) - Tokens:3
- SyntaxKind.Whitespace;[ ];
- SyntaxKind.Text;[class2];
- SyntaxKind.Equals;[=];
- Markup span - Gen - [btn] - SpanEditHandler;Accepts:Any - (34:0,34) - Tokens:1
- SyntaxKind.Text;[btn];
- Markup span - Gen - [>] - SpanEditHandler;Accepts:None - (37:0,37) - Tokens:1
- SyntaxKind.CloseAngle;[>];
- Tag block - Gen - 8 - (38:0,38)
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (38:0,38) - Tokens:2
- SyntaxKind.OpenAngle;[<];
- SyntaxKind.ForwardSlash;[/];
- MetaCode span - Gen - [!] - SpanEditHandler;Accepts:None - (40:0,40) - Tokens:1
- SyntaxKind.Bang;[!];
- Markup span - Gen - [text>] - SpanEditHandler;Accepts:None - (41:0,41) - Tokens:2
- SyntaxKind.Text;[text];
- SyntaxKind.CloseAngle;[>];
- Code span - Gen - [] - SpanEditHandler;Accepts:Any - (46:0,46) - Tokens:1
- SyntaxKind.Unknown;[];
- MetaCode span - Gen - [}] - SpanEditHandler;Accepts:None - (46:0,46) - Tokens:1
- SyntaxKind.RightBrace;[}];
- Markup span - Gen - [] - SpanEditHandler;Accepts:Any - (47:0,47) - Tokens:1
- SyntaxKind.Unknown;[];
+RazorDocument - [0..47)::47 - [@{!text>}]
+ MarkupBlock - [0..47)::47
+ MarkupTextLiteral - [0..0)::0 - [] - Gen - SpanEditHandler;Accepts:Any
+ Marker;[];
+ CSharpCodeBlock - [0..47)::47
+ CSharpStatement - [0..47)::47
+ CSharpTransition - [0..1)::1 - Gen - SpanEditHandler;Accepts:None
+ Transition;[@];
+ CSharpStatementBody - [1..47)::46
+ RazorMetaCode - [1..2)::1 - Gen - SpanEditHandler;Accepts:None
+ LeftBrace;[{];
+ CSharpCodeBlock - [2..46)::44
+ MarkupBlock - [2..46)::44
+ MarkupTagBlock - [2..38)::36 - []
+ MarkupTextLiteral - [2..3)::1 - [<] - Gen - SpanEditHandler;Accepts:Any
+ OpenAngle;[<];
+ RazorMetaCode - [3..4)::1 - Gen - SpanEditHandler;Accepts:None
+ Bang;[!];
+ MarkupTextLiteral - [4..8)::4 - [text] - Gen - SpanEditHandler;Accepts:Any
+ Text;[text];
+ MarkupAttributeBlock - [8..26)::18 - [ class='btn1 btn2']
+ MarkupTextLiteral - [8..9)::1 - [ ] - Gen - SpanEditHandler;Accepts:Any
+ Whitespace;[ ];
+ MarkupTextLiteral - [9..14)::5 - [class] - Gen - SpanEditHandler;Accepts:Any
+ Text;[class];
+ Equals;[=];
+ MarkupTextLiteral - [15..16)::1 - ['] - Gen