Add Tag Helper descriptors to the Tag Helper node
This commit is contained in:
parent
062d7561ae
commit
8649e1a4be
|
|
@ -642,12 +642,19 @@ namespace Microsoft.AspNetCore.Razor.Language
|
|||
tagName = tagName.Substring(_tagHelperPrefix.Length);
|
||||
}
|
||||
|
||||
_builder.Push(new TagHelperIRNode()
|
||||
var tagHelperNode = new TagHelperIRNode()
|
||||
{
|
||||
TagName = tagName,
|
||||
TagMode = tagHelperBlock.TagMode,
|
||||
Source = BuildSourceSpanFromNode(block)
|
||||
});
|
||||
};
|
||||
|
||||
foreach (var tagHelper in tagHelperBlock.Binding.Descriptors)
|
||||
{
|
||||
tagHelperNode.TagHelpers.Add(tagHelper);
|
||||
}
|
||||
|
||||
_builder.Push(tagHelperNode);
|
||||
|
||||
_builder.Push(new TagHelperBodyIRNode());
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Microsoft.AspNetCore.Razor.Language.Intermediate
|
||||
{
|
||||
|
|
@ -46,6 +47,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Intermediate
|
|||
|
||||
public TagMode TagMode { get; set; }
|
||||
|
||||
public ICollection<TagHelperDescriptor> TagHelpers { get; } = new List<TagHelperDescriptor>();
|
||||
|
||||
public override void Accept(RazorIRNodeVisitor visitor)
|
||||
{
|
||||
if (visitor == null)
|
||||
|
|
|
|||
|
|
@ -202,6 +202,7 @@ namespace Microsoft.AspNetCore.Razor.Language
|
|||
n => TagHelper(
|
||||
"span",
|
||||
TagMode.StartTagAndEndTag,
|
||||
tagHelpers,
|
||||
n,
|
||||
c => Assert.IsType<TagHelperBodyIRNode>(c),
|
||||
c => Assert.IsType<CreateTagHelperIRNode>(c),
|
||||
|
|
@ -245,6 +246,7 @@ namespace Microsoft.AspNetCore.Razor.Language
|
|||
n => TagHelper(
|
||||
"span", // Note: this is span not cool:span
|
||||
TagMode.StartTagAndEndTag,
|
||||
tagHelpers,
|
||||
n,
|
||||
c => Assert.IsType<TagHelperBodyIRNode>(c),
|
||||
c => Assert.IsType<CreateTagHelperIRNode>(c),
|
||||
|
|
@ -290,6 +292,7 @@ namespace Microsoft.AspNetCore.Razor.Language
|
|||
c1 => TagHelper(
|
||||
"span",
|
||||
TagMode.StartTagAndEndTag,
|
||||
tagHelpers,
|
||||
c1,
|
||||
c2 => Assert.IsType<TagHelperBodyIRNode>(c2),
|
||||
c2 => Assert.IsType<CreateTagHelperIRNode>(c2),
|
||||
|
|
@ -338,6 +341,7 @@ namespace Microsoft.AspNetCore.Razor.Language
|
|||
n => TagHelper(
|
||||
"input",
|
||||
TagMode.SelfClosing,
|
||||
tagHelpers,
|
||||
n,
|
||||
c => Assert.IsType<TagHelperBodyIRNode>(c),
|
||||
c => Assert.IsType<CreateTagHelperIRNode>(c),
|
||||
|
|
|
|||
|
|
@ -342,7 +342,7 @@ namespace Microsoft.AspNetCore.Razor.Language.Intermediate
|
|||
}
|
||||
}
|
||||
|
||||
internal static void TagHelper(string tagName, TagMode tagMode, RazorIRNode node, params Action<RazorIRNode>[] childValidators)
|
||||
internal static void TagHelper(string tagName, TagMode tagMode, IEnumerable<TagHelperDescriptor> tagHelpers, RazorIRNode node, params Action<RazorIRNode>[] childValidators)
|
||||
{
|
||||
var tagHelperNode = Assert.IsType<TagHelperIRNode>(node);
|
||||
|
||||
|
|
@ -350,6 +350,8 @@ namespace Microsoft.AspNetCore.Razor.Language.Intermediate
|
|||
{
|
||||
Assert.Equal(tagName, tagHelperNode.TagName);
|
||||
Assert.Equal(tagMode, tagHelperNode.TagMode);
|
||||
|
||||
Assert.Equal(tagHelpers, tagHelperNode.TagHelpers);
|
||||
}
|
||||
catch (XunitException e)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue