parent
1705888721
commit
a570139b08
|
|
@ -17,6 +17,9 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
var syntaxTree = codeDocument.GetSyntaxTree();
|
var syntaxTree = codeDocument.GetSyntaxTree();
|
||||||
ThrowForMissingDependency(syntaxTree);
|
ThrowForMissingDependency(syntaxTree);
|
||||||
|
|
||||||
|
// This might not have been set if there are no tag helpers.
|
||||||
|
var tagHelperContext = codeDocument.GetTagHelperContext();
|
||||||
|
|
||||||
var builder = RazorIRBuilder.Document();
|
var builder = RazorIRBuilder.Document();
|
||||||
var document = (DocumentIRNode)builder.Current;
|
var document = (DocumentIRNode)builder.Current;
|
||||||
|
|
||||||
|
|
@ -46,7 +49,7 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var tagHelperPrefix = codeDocument.GetTagHelperPrefix();
|
var tagHelperPrefix = tagHelperContext?.Prefix;
|
||||||
var visitor = new MainSourceVisitor(document, builder, namespaces, tagHelperPrefix)
|
var visitor = new MainSourceVisitor(document, builder, namespaces, tagHelperPrefix)
|
||||||
{
|
{
|
||||||
FileName = syntaxTree.Source.FileName,
|
FileName = syntaxTree.Source.FileName,
|
||||||
|
|
|
||||||
|
|
@ -31,26 +31,6 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
document.Items[typeof(TagHelperDocumentContext)] = context;
|
document.Items[typeof(TagHelperDocumentContext)] = context;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static string GetTagHelperPrefix(this RazorCodeDocument document)
|
|
||||||
{
|
|
||||||
if (document == null)
|
|
||||||
{
|
|
||||||
throw new ArgumentNullException(nameof(document));
|
|
||||||
}
|
|
||||||
|
|
||||||
return document.Items[TagHelperPrefixKey] as string;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void SetTagHelperPrefix(this RazorCodeDocument document, string tagHelperPrefix)
|
|
||||||
{
|
|
||||||
if (document == null)
|
|
||||||
{
|
|
||||||
throw new ArgumentNullException(nameof(document));
|
|
||||||
}
|
|
||||||
|
|
||||||
document.Items[TagHelperPrefixKey] = tagHelperPrefix;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static RazorSyntaxTree GetSyntaxTree(this RazorCodeDocument document)
|
public static RazorSyntaxTree GetSyntaxTree(this RazorCodeDocument document)
|
||||||
{
|
{
|
||||||
if (document == null)
|
if (document == null)
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,6 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(prefix))
|
if (!string.IsNullOrEmpty(prefix))
|
||||||
{
|
{
|
||||||
codeDocument.SetTagHelperPrefix(prefixDirective.DirectiveText);
|
|
||||||
return prefixDirective.DirectiveText;
|
return prefixDirective.DirectiveText;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -691,7 +691,7 @@ namespace Microsoft.AspNetCore.Razor.Language.IntegrationTests
|
||||||
public void BasicTagHelpers_Prefixed_Runtime()
|
public void BasicTagHelpers_Prefixed_Runtime()
|
||||||
{
|
{
|
||||||
// Arrange, Act & Assert
|
// Arrange, Act & Assert
|
||||||
RunRuntimeTagHelpersTest(TestTagHelperDescriptors.DefaultPAndInputTagHelperDescriptors, tagHelperPrefix: "THS");
|
RunRuntimeTagHelpersTest(TestTagHelperDescriptors.DefaultPAndInputTagHelperDescriptors);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -1535,7 +1535,7 @@ namespace Microsoft.AspNetCore.Razor.Language.IntegrationTests
|
||||||
public void BasicTagHelpers_Prefixed_DesignTime()
|
public void BasicTagHelpers_Prefixed_DesignTime()
|
||||||
{
|
{
|
||||||
// Arrange, Act & Assert
|
// Arrange, Act & Assert
|
||||||
RunDesignTimeTagHelpersTest(TestTagHelperDescriptors.DefaultPAndInputTagHelperDescriptors, tagHelperPrefix: "THS");
|
RunDesignTimeTagHelpersTest(TestTagHelperDescriptors.DefaultPAndInputTagHelperDescriptors);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -1630,20 +1630,16 @@ namespace Microsoft.AspNetCore.Razor.Language.IntegrationTests
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private void RunRuntimeTagHelpersTest(IEnumerable<TagHelperDescriptor> descriptors, string tagHelperPrefix = null)
|
private void RunRuntimeTagHelpersTest(IEnumerable<TagHelperDescriptor> descriptors)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var engine = RazorEngine.Create(
|
var engine = RazorEngine.Create(builder =>
|
||||||
builder =>
|
|
||||||
{
|
|
||||||
builder.Features.Add(new ApiSetsIRTestAdapter());
|
|
||||||
builder.AddTagHelpers(descriptors);
|
|
||||||
});
|
|
||||||
var document = CreateCodeDocument();
|
|
||||||
if (tagHelperPrefix != null)
|
|
||||||
{
|
{
|
||||||
document.SetTagHelperPrefix(tagHelperPrefix);
|
builder.Features.Add(new ApiSetsIRTestAdapter());
|
||||||
}
|
builder.AddTagHelpers(descriptors);
|
||||||
|
});
|
||||||
|
|
||||||
|
var document = CreateCodeDocument();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
engine.Process(document);
|
engine.Process(document);
|
||||||
|
|
@ -1653,20 +1649,16 @@ namespace Microsoft.AspNetCore.Razor.Language.IntegrationTests
|
||||||
AssertCSharpDocumentMatchesBaseline(document.GetCSharpDocument());
|
AssertCSharpDocumentMatchesBaseline(document.GetCSharpDocument());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RunDesignTimeTagHelpersTest(IEnumerable<TagHelperDescriptor> descriptors, string tagHelperPrefix = null)
|
private void RunDesignTimeTagHelpersTest(IEnumerable<TagHelperDescriptor> descriptors)
|
||||||
{
|
{
|
||||||
// Arrange
|
// Arrange
|
||||||
var engine = RazorEngine.CreateDesignTime(
|
var engine = RazorEngine.CreateDesignTime(builder =>
|
||||||
builder =>
|
|
||||||
{
|
|
||||||
builder.Features.Add(new ApiSetsIRTestAdapter());
|
|
||||||
builder.AddTagHelpers(descriptors);
|
|
||||||
});
|
|
||||||
var document = CreateCodeDocument();
|
|
||||||
if (tagHelperPrefix != null)
|
|
||||||
{
|
{
|
||||||
document.SetTagHelperPrefix(tagHelperPrefix);
|
builder.Features.Add(new ApiSetsIRTestAdapter());
|
||||||
}
|
builder.AddTagHelpers(descriptors);
|
||||||
|
});
|
||||||
|
|
||||||
|
var document = CreateCodeDocument();
|
||||||
|
|
||||||
// Act
|
// Act
|
||||||
engine.Process(document);
|
engine.Process(document);
|
||||||
|
|
|
||||||
|
|
@ -877,7 +877,7 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
|
|
||||||
[Theory]
|
[Theory]
|
||||||
[MemberData(nameof(ProcessTagHelperPrefixData))]
|
[MemberData(nameof(ProcessTagHelperPrefixData))]
|
||||||
public void ProcessTagHelperPrefix_ParsesPrefixFromDirectives_SetsOnCodeDocument(
|
public void ProcessTagHelperPrefix_ParsesPrefixFromDirectives(
|
||||||
object directiveDescriptors,
|
object directiveDescriptors,
|
||||||
string expectedPrefix)
|
string expectedPrefix)
|
||||||
{
|
{
|
||||||
|
|
@ -892,7 +892,6 @@ namespace Microsoft.AspNetCore.Razor.Language
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Empty(errorSink.Errors);
|
Assert.Empty(errorSink.Errors);
|
||||||
Assert.Equal(expectedPrefix, prefix);
|
Assert.Equal(expectedPrefix, prefix);
|
||||||
Assert.Equal(expectedPrefix, document.GetTagHelperPrefix());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static TheoryData ProcessDirectivesData
|
public static TheoryData ProcessDirectivesData
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ namespace Microsoft.AspNetCore.Razor.Performance
|
||||||
{
|
{
|
||||||
public CodeGenerationBenchmark()
|
public CodeGenerationBenchmark()
|
||||||
{
|
{
|
||||||
var current = new DirectoryInfo(Environment.CurrentDirectory);
|
var current = new DirectoryInfo(AppContext.BaseDirectory);
|
||||||
while (current != null && !File.Exists(Path.Combine(current.FullName, "MSN.cshtml")))
|
while (current != null && !File.Exists(Path.Combine(current.FullName, "MSN.cshtml")))
|
||||||
{
|
{
|
||||||
current = current.Parent;
|
current = current.Parent;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue