public static RazorProjectEngineBuilder ConfigureDocumentClassifier(this RazorProjectEngineBuilder builder) { var feature = builder.Features.OfType <DefaultDocumentClassifierPassFeature>().FirstOrDefault(); if (feature is null) { feature = new DefaultDocumentClassifierPassFeature(); builder.Features.Add(feature); } feature.ConfigureNamespace.Clear(); feature.ConfigureClass.Clear(); feature.ConfigureMethod.Clear(); feature.ConfigureNamespace.Add((RazorCodeDocument codeDocument, NamespaceDeclarationIntermediateNode node) => node.Content = "Microsoft.AspNetCore.Razor.Language.IntegrationTests.TestFiles"); feature.ConfigureClass.Add((RazorCodeDocument codeDocument, ClassDeclarationIntermediateNode node) => { node.ClassName = IntegrationTestBase.FileName.Replace('/', '_'); node.Modifiers.Clear(); node.Modifiers.Add("public"); }); feature.ConfigureMethod.Add((RazorCodeDocument codeDocument, MethodDeclarationIntermediateNode node) => { node.Modifiers.Clear(); node.Modifiers.Add("public"); node.Modifiers.Add("async"); node.MethodName = "ExecuteAsync"; node.ReturnType = typeof(Task).FullName; }); return(builder); }
internal static void AddDefaults(IRazorEngineBuilder builder) { builder.Phases.Add(new DefaultRazorParsingPhase()); builder.Phases.Add(new DefaultRazorSyntaxTreePhase()); builder.Phases.Add(new DefaultRazorTagHelperBinderPhase()); builder.Phases.Add(new DefaultRazorIntermediateNodeLoweringPhase()); builder.Phases.Add(new DefaultRazorDocumentClassifierPhase()); builder.Phases.Add(new DefaultRazorDirectiveClassifierPhase()); builder.Phases.Add(new DefaultRazorOptimizationPhase()); builder.Phases.Add(new DefaultRazorCSharpLoweringPhase()); // General extensibility builder.Features.Add(new DefaultRazorDirectiveFeature()); builder.Features.Add(new DefaultRazorTargetExtensionFeature()); builder.Features.Add(new DefaultMetadataIdentifierFeature()); // Syntax Tree passes builder.Features.Add(new DefaultDirectiveSyntaxTreePass()); builder.Features.Add(new HtmlNodeOptimizationPass()); // Intermediate Node Passes builder.Features.Add(new DefaultDocumentClassifierPass()); builder.Features.Add(new MetadataAttributePass()); builder.Features.Add(new DirectiveRemovalOptimizationPass()); builder.Features.Add(new DefaultTagHelperOptimizationPass()); // Default Code Target Extensions builder.AddTargetExtension(new MetadataAttributeTargetExtension()); // Default configuration var configurationFeature = new DefaultDocumentClassifierPassFeature(); configurationFeature.ConfigureClass.Add((document, @class) => { @class.ClassName = "Template"; @class.Modifiers.Add("public"); }); configurationFeature.ConfigureNamespace.Add((document, @namespace) => { @namespace.Content = "Razor"; }); configurationFeature.ConfigureMethod.Add((document, method) => { method.MethodName = "ExecuteAsync"; method.ReturnType = $"global::{typeof(Task).FullName}"; method.Modifiers.Add("public"); method.Modifiers.Add("async"); method.Modifiers.Add("override"); }); builder.Features.Add(configurationFeature); }
private static DefaultDocumentClassifierPassFeature GetDefaultDocumentClassifierPassFeature(IRazorEngineBuilder builder) { var configurationFeature = builder.Features.OfType <DefaultDocumentClassifierPassFeature>().FirstOrDefault(); if (configurationFeature == null) { configurationFeature = new DefaultDocumentClassifierPassFeature(); builder.Features.Add(configurationFeature); } return(configurationFeature); }
private static void AddDefaultFeatures(ICollection <IRazorEngineFeature> features) { // General extensibility features.Add(new DefaultRazorDirectiveFeature()); var targetExtensionFeature = new DefaultRazorTargetExtensionFeature(); features.Add(targetExtensionFeature); features.Add(new DefaultMetadataIdentifierFeature()); // Syntax Tree passes features.Add(new DefaultDirectiveSyntaxTreePass()); features.Add(new HtmlNodeOptimizationPass()); // Intermediate Node Passes features.Add(new DefaultDocumentClassifierPass()); features.Add(new MetadataAttributePass()); features.Add(new DirectiveRemovalOptimizationPass()); features.Add(new DefaultTagHelperOptimizationPass()); // Default Code Target Extensions targetExtensionFeature.TargetExtensions.Add(new MetadataAttributeTargetExtension()); // Default configuration var configurationFeature = new DefaultDocumentClassifierPassFeature(); configurationFeature.ConfigureClass.Add((document, @class) => { @class.ClassName = "Template"; @class.Modifiers.Add("public"); }); configurationFeature.ConfigureNamespace.Add((document, @namespace) => { @namespace.Content = "Razor"; }); configurationFeature.ConfigureMethod.Add((document, method) => { method.MethodName = "ExecuteAsync"; method.ReturnType = $"global::{typeof(Task).FullName}"; method.Modifiers.Add("public"); method.Modifiers.Add("async"); method.Modifiers.Add("override"); }); features.Add(configurationFeature); }
private static void AddDefaultFeatures(ICollection <IRazorFeature> features) { features.Add(new DefaultImportProjectFeature()); // General extensibility features.Add(new DefaultRazorDirectiveFeature()); features.Add(new DefaultMetadataIdentifierFeature()); // Options features features.Add(new DefaultRazorParserOptionsFactoryProjectFeature()); features.Add(new DefaultRazorCodeGenerationOptionsFactoryProjectFeature()); // Legacy options features // // These features are obsolete as of 2.1. Our code will resolve this but not invoke them. features.Add(new DefaultRazorParserOptionsFeature(designTime: false, version: RazorLanguageVersion.Version_2_0, fileKind: null)); features.Add(new DefaultRazorCodeGenerationOptionsFeature(designTime: false)); // Syntax Tree passes features.Add(new DefaultDirectiveSyntaxTreePass()); features.Add(new HtmlNodeOptimizationPass()); // Intermediate Node Passes features.Add(new DefaultDocumentClassifierPass()); features.Add(new MetadataAttributePass()); features.Add(new DesignTimeDirectivePass()); features.Add(new DirectiveRemovalOptimizationPass()); features.Add(new DefaultTagHelperOptimizationPass()); features.Add(new PreallocatedTagHelperAttributeOptimizationPass()); features.Add(new EliminateMethodBodyPass()); // Default Code Target Extensions var targetExtensionFeature = new DefaultRazorTargetExtensionFeature(); features.Add(targetExtensionFeature); targetExtensionFeature.TargetExtensions.Add(new MetadataAttributeTargetExtension()); targetExtensionFeature.TargetExtensions.Add(new DefaultTagHelperTargetExtension()); targetExtensionFeature.TargetExtensions.Add(new PreallocatedAttributeTargetExtension()); targetExtensionFeature.TargetExtensions.Add(new DesignTimeDirectiveTargetExtension()); // Default configuration var configurationFeature = new DefaultDocumentClassifierPassFeature(); features.Add(configurationFeature); configurationFeature.ConfigureClass.Add((document, @class) => { @class.ClassName = "Template"; @class.Modifiers.Add("public"); }); configurationFeature.ConfigureNamespace.Add((document, @namespace) => { @namespace.Content = "Razor"; }); configurationFeature.ConfigureMethod.Add((document, method) => { method.MethodName = "ExecuteAsync"; method.ReturnType = $"global::{typeof(Task).FullName}"; method.Modifiers.Add("public"); method.Modifiers.Add("async"); method.Modifiers.Add("override"); }); }