public static void Register(IRazorEngineBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } EnsureDesignTime(builder); InjectDirective.Register(builder); ModelDirective.Register(builder); FunctionsDirective.Register(builder); InheritsDirective.Register(builder); builder.Features.Add(new DefaultTagHelperDescriptorProvider()); // Register section directive with the 1.x compatible target extension. builder.AddDirective(SectionDirective.Directive); builder.Features.Add(new SectionDirectivePass()); builder.AddTargetExtension(new LegacySectionTargetExtension()); builder.AddTargetExtension(new TemplateTargetExtension() { TemplateTypeName = "global::Microsoft.AspNetCore.Mvc.Razor.HelperResult", }); builder.Features.Add(new ModelExpressionPass()); builder.Features.Add(new MvcViewDocumentClassifierPass()); }
public static void Register(IRazorEngineBuilder builder) { InjectDirective.Register(builder); ModelDirective.Register(builder); NamespaceDirective.Register(builder); PageDirective.Register(builder); FunctionsDirective.Register(builder); InheritsDirective.Register(builder); SectionDirective.Register(builder); builder.AddTargetExtension(new TemplateTargetExtension() { TemplateTypeName = "global::Microsoft.AspNetCore.Mvc.Razor.HelperResult", }); builder.Features.Add(new ModelExpressionPass()); builder.Features.Add(new PagesPropertyInjectionPass()); builder.Features.Add(new ViewComponentTagHelperPass()); builder.Features.Add(new RazorPageDocumentClassifierPass()); builder.Features.Add(new MvcViewDocumentClassifierPass()); builder.Features.Add(new AssemblyAttributeInjectionPass()); if (!builder.DesignTime) { builder.Features.Add(new InstrumentationPass()); } }
public static IRazorEngineBuilder Register(IRazorEngineBuilder builder) { builder.AddDirective(Directive); builder.Features.Add(new Pass()); builder.AddTargetExtension(new InjectTargetExtension()); return(builder); }
public static IRazorEngineBuilder ConfigureDocumentClassifier(this IRazorEngineBuilder builder) { var feature = builder.Features.OfType <DefaultDocumentClassifierPassFeature>().FirstOrDefault(); if (feature == 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); }
public static void RegisterViewComponentTagHelpers(IRazorEngineBuilder builder) { EnsureDesignTime(builder); builder.Features.Add(new ViewComponentTagHelperPass()); builder.AddTargetExtension(new ViewComponentTagHelperTargetExtension()); }
private static void EnsureDesignTime(IRazorEngineBuilder builder) { if (builder.DesignTime) { return; } throw new NotSupportedException(Resources.RuntimeCodeGenerationNotSupported); }
public static void Register(IRazorEngineBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.AddDirective(Directive); builder.Features.Add(new FunctionsDirectivePass()); }
#pragma warning disable CS0618 // Type or member is obsolete private static void EnsureDesignTime(IRazorEngineBuilder builder) #pragma warning restore CS0618 // Type or member is obsolete { if (builder.DesignTime) { return; } throw new NotSupportedException(Resources.RuntimeCodeGenerationNotSupported); }
public static IRazorEngineBuilder Register(IRazorEngineBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.AddDirective(Directive); 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); }
public static IRazorEngineBuilder Register(IRazorEngineBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.AddDirective(Directive); builder.Features.Add(new Pass(builder.DesignTime)); return(builder); }
/// <summary> /// Sets the namespace for generated types. /// </summary> /// <param name="builder">The <see cref="IRazorEngineBuilder"/>.</param> /// <param name="namespaceName">The name of the namespace.</param> /// <returns>The <see cref="IRazorEngineBuilder"/>.</returns> public static IRazorEngineBuilder SetNamespace(this IRazorEngineBuilder builder, string namespaceName) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } var configurationFeature = GetDefaultDocumentClassifierPassFeature(builder); configurationFeature.ConfigureNamespace.Add((document, @namespace) => @namespace.Content = namespaceName); return(builder); }
public static IRazorEngineBuilder Register(IRazorEngineBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } builder.AddDirective(Directive); builder.Features.Add(new Pass()); builder.AddTargetExtension(new InjectTargetExtension()); return(builder); }
/// <summary> /// Sets the base type for generated types. /// </summary> /// <param name="builder">The <see cref="IRazorEngineBuilder"/>.</param> /// <param name="baseType">The name of the base type.</param> /// <returns>The <see cref="IRazorEngineBuilder"/>.</returns> public static IRazorEngineBuilder SetBaseType(this IRazorEngineBuilder builder, string baseType) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } var configurationFeature = GetDefaultDocumentClassifierPassFeature(builder); configurationFeature.ConfigureClass.Add((document, @class) => @class.BaseType = baseType); return(builder); }
public static void RegisterViewComponentTagHelpers(IRazorEngineBuilder builder) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } EnsureDesignTime(builder); builder.Features.Add(new ViewComponentTagHelperPass()); builder.AddTargetExtension(new ViewComponentTagHelperTargetExtension()); }
private static IRazorTargetExtensionFeature GetTargetExtensionFeature(IRazorEngineBuilder builder) { var targetExtensionFeature = builder.Features.OfType <IRazorTargetExtensionFeature>().FirstOrDefault(); if (targetExtensionFeature == null) { targetExtensionFeature = new DefaultRazorTargetExtensionFeature(); builder.Features.Add(targetExtensionFeature); } return(targetExtensionFeature); }
private static IRazorDirectiveFeature GetDirectiveFeature(IRazorEngineBuilder builder) { var directiveFeature = builder.Features.OfType <IRazorDirectiveFeature>().FirstOrDefault(); if (directiveFeature == null) { directiveFeature = new DefaultRazorDirectiveFeature(); builder.Features.Add(directiveFeature); } return(directiveFeature); }
public static IRazorEngineBuilder AddTagHelpers(this IRazorEngineBuilder builder, IEnumerable <TagHelperDescriptor> tagHelpers) { var feature = (TestTagHelperFeature)builder.Features.OfType <ITagHelperFeature>().FirstOrDefault(); if (feature == null) { feature = new TestTagHelperFeature(); builder.Features.Add(feature); } feature.TagHelpers.AddRange(tagHelpers); return(builder); }
private void ConfigureRazorEngine(IRazorEngineBuilder engineBuilder) { var engineFeatures = Features.OfType <IRazorEngineFeature>(); foreach (var engineFeature in engineFeatures) { engineBuilder.Features.Add(engineFeature); } for (var i = 0; i < Phases.Count; i++) { engineBuilder.Phases.Add(Phases[i]); } }
#pragma warning disable CS0618 // Type or member is obsolete private void ConfigureRazorEngine(IRazorEngineBuilder engineBuilder) #pragma warning disable CS0618 // Type or member is obsolete { var engineFeatures = Features.OfType <IRazorEngineFeature>(); foreach (var engineFeature in engineFeatures) { engineBuilder.Features.Add(engineFeature); } for (var i = 0; i < Phases.Count; i++) { engineBuilder.Phases.Add(Phases[i]); } }
internal static void AddRuntimeDefaults(IRazorEngineBuilder builder) { // Configure options builder.Features.Add(new DefaultRazorParserOptionsFeature(designTime: false, version: RazorParserOptions.LatestRazorLanguageVersion)); builder.Features.Add(new DefaultRazorCodeGenerationOptionsFeature(designTime: false)); // Intermediate Node Passes builder.Features.Add(new PreallocatedTagHelperAttributeOptimizationPass()); // Code Target Extensions builder.AddTargetExtension(new DefaultTagHelperTargetExtension() { DesignTime = false }); builder.AddTargetExtension(new PreallocatedAttributeTargetExtension()); }
internal static void AddDesignTimeDefaults(IRazorEngineBuilder builder) { // Configure options builder.Features.Add(new DefaultRazorParserOptionsFeature(designTime: true, version: RazorParserOptions.LatestRazorLanguageVersion)); builder.Features.Add(new DefaultRazorCodeGenerationOptionsFeature(designTime: true)); builder.Features.Add(new SuppressChecksumOptionsFeature()); // Intermediate Node Passes builder.Features.Add(new DesignTimeDirectivePass()); // Code Target Extensions builder.AddTargetExtension(new DefaultTagHelperTargetExtension() { DesignTime = true }); builder.AddTargetExtension(new DesignTimeDirectiveTargetExtension()); }
/// <summary> /// Adds the specified <see cref="DirectiveDescriptor"/>. /// </summary> /// <param name="builder">The <see cref="IRazorEngineBuilder"/>.</param> /// <param name="directive">The <see cref="DirectiveDescriptor"/> to add.</param> /// <returns>The <see cref="IRazorEngineBuilder"/>.</returns> public static IRazorEngineBuilder AddDirective(this IRazorEngineBuilder builder, DirectiveDescriptor directive) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (directive == null) { throw new ArgumentNullException(nameof(directive)); } var directiveFeature = GetDirectiveFeature(builder); directiveFeature.Directives.Add(directive); return(builder); }
/// <summary> /// Adds the specified <see cref="ICodeTargetExtension"/>. /// </summary> /// <param name="builder">The <see cref="IRazorEngineBuilder"/>.</param> /// <param name="extension">The <see cref="ICodeTargetExtension"/> to add.</param> /// <returns>The <see cref="IRazorEngineBuilder"/>.</returns> public static IRazorEngineBuilder AddTargetExtension(this IRazorEngineBuilder builder, ICodeTargetExtension extension) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (extension == null) { throw new ArgumentNullException(nameof(extension)); } var targetExtensionFeature = GetTargetExtensionFeature(builder); targetExtensionFeature.TargetExtensions.Add(extension); return(builder); }
/// <summary> /// Registers a class configuration delegate that gets invoked during code generation. /// </summary> /// <param name="builder">The <see cref="IRazorEngineBuilder"/>.</param> /// <param name="configureClass"><see cref="Action"/> invoked to configure /// <see cref="ClassDeclarationIntermediateNode"/> during code generation.</param> /// <returns>The <see cref="IRazorEngineBuilder"/>.</returns> public static IRazorEngineBuilder ConfigureClass( this IRazorEngineBuilder builder, Action <RazorCodeDocument, ClassDeclarationIntermediateNode> configureClass) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (configureClass == null) { throw new ArgumentNullException(nameof(configureClass)); } var configurationFeature = GetDefaultDocumentClassifierPassFeature(builder); configurationFeature.ConfigureClass.Add(configureClass); return(builder); }
public static void Register(IRazorEngineBuilder builder) { builder.AddDirective(Directive); builder.Features.Add(new FunctionsDirectivePass()); }
#pragma warning disable CS0618 // Type or member is obsolete private static void AddDefaults(IRazorEngineBuilder builder) #pragma warning restore CS0618 // Type or member is obsolete { AddDefaultPhases(builder.Phases); AddDefaultFeatures(builder.Features); }
public static IRazorEngineBuilder Register(IRazorEngineBuilder builder) { builder.AddDirective(Directive); builder.Features.Add(new Pass(builder.DesignTime)); return(builder); }
public static void Register(IRazorEngineBuilder builder) { builder.AddDirective(Directive); builder.Features.Add(new SectionDirectivePass()); builder.AddTargetExtension(new SectionTargetExtension()); }
public static void Register(IRazorEngineBuilder configuration) { configuration.Features.Add(new TemporaryImplementsPass()); }