Skip to content

Commit 87641d4

Browse files
authored
Group HTML tags (#6)
1 parent 05fe98c commit 87641d4

File tree

15 files changed

+668
-175
lines changed

15 files changed

+668
-175
lines changed

src/Razor/Microsoft.AspNetCore.Razor.Language/src/ClassifiedSpanRewriter.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ namespace Microsoft.AspNetCore.Razor.Language
99
{
1010
internal class ClassifiedSpanRewriter : SyntaxRewriter
1111
{
12-
public override SyntaxNode VisitMarkupTagBlock(MarkupTagBlockSyntax node)
12+
public override SyntaxNode VisitMarkupStartTag(MarkupStartTagSyntax node)
1313
{
1414
SpanContext latestSpanContext = null;
1515
var newChildren = SyntaxListBuilder<RazorSyntaxNode>.Create();
@@ -47,7 +47,7 @@ public override SyntaxNode VisitMarkupTagBlock(MarkupTagBlockSyntax node)
4747

4848
AddLiteralIfExists();
4949

50-
return SyntaxFactory.MarkupTagBlock(newChildren.ToList()).Green.CreateRed(node.Parent, node.Position);
50+
return SyntaxFactory.MarkupStartTag(newChildren.ToList()).Green.CreateRed(node.Parent, node.Position);
5151

5252
void AddLiteralIfExists()
5353
{

src/Razor/Microsoft.AspNetCore.Razor.Language/src/ClassifiedSpanVisitor.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,14 @@ public override void VisitMarkupTagHelperAttributeValue(MarkupTagHelperAttribute
106106
base.VisitMarkupTagHelperAttributeValue(node);
107107
}
108108

109-
public override void VisitMarkupTagBlock(MarkupTagBlockSyntax node)
109+
public override void VisitMarkupStartTag(MarkupStartTagSyntax node)
110110
{
111-
WriteBlock(node, BlockKindInternal.Tag, base.VisitMarkupTagBlock);
111+
WriteBlock(node, BlockKindInternal.Tag, base.VisitMarkupStartTag);
112+
}
113+
114+
public override void VisitMarkupEndTag(MarkupEndTagSyntax node)
115+
{
116+
WriteBlock(node, BlockKindInternal.Tag, base.VisitMarkupEndTag);
112117
}
113118

114119
public override void VisitMarkupTagHelperElement(MarkupTagHelperElementSyntax node)

src/Razor/Microsoft.AspNetCore.Razor.Language/src/Legacy/RazorParser.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33

44
using System;
5+
using Microsoft.AspNetCore.Razor.Language.Syntax;
56

67
namespace Microsoft.AspNetCore.Razor.Language.Legacy
78
{
@@ -41,7 +42,12 @@ public virtual RazorSyntaxTree Parse(RazorSourceDocument source)
4142
var diagnostics = context.ErrorSink.Errors;
4243

4344
var root = markupParser.ParseDocument().CreateRed();
44-
return RazorSyntaxTree.Create(root, source, diagnostics, Options);
45+
46+
var syntaxTree = RazorSyntaxTree.Create(root, source, diagnostics, Options);
47+
48+
// Group markup elements
49+
syntaxTree = MarkupElementRewriter.AddMarkupElements(syntaxTree);
50+
return syntaxTree;
4551
}
4652
}
4753
}

src/Razor/Microsoft.AspNetCore.Razor.Language/src/Legacy/TagHelperBlockRewriter.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,11 @@ namespace Microsoft.AspNetCore.Razor.Language.Legacy
1010
{
1111
internal static class TagHelperBlockRewriter
1212
{
13-
private static readonly string StringTypeName = typeof(string).FullName;
14-
1513
public static MarkupTagHelperStartTagSyntax Rewrite(
1614
string tagName,
1715
bool validStructure,
1816
RazorParserFeatureFlags featureFlags,
19-
MarkupTagBlockSyntax tag,
17+
MarkupStartTagSyntax tag,
2018
TagHelperBinding bindingResult,
2119
ErrorSink errorSink,
2220
RazorSourceDocument source)
@@ -28,7 +26,7 @@ public static MarkupTagHelperStartTagSyntax Rewrite(
2826
}
2927

3028
public static TagMode GetTagMode(
31-
MarkupTagBlockSyntax tagBlock,
29+
MarkupStartTagSyntax tagBlock,
3230
TagHelperBinding bindingResult,
3331
ErrorSink errorSink)
3432
{
@@ -57,7 +55,7 @@ public static TagMode GetTagMode(
5755
private static SyntaxList<RazorSyntaxNode> GetRewrittenChildren(
5856
string tagName,
5957
bool validStructure,
60-
MarkupTagBlockSyntax tagBlock,
58+
MarkupStartTagSyntax tagBlock,
6159
TagHelperBinding bindingResult,
6260
RazorParserFeatureFlags featureFlags,
6361
ErrorSink errorSink,

src/Razor/Microsoft.AspNetCore.Razor.Language/src/Legacy/TagHelperParseTreeRewriter.cs

Lines changed: 131 additions & 50 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)