/// <summary> /// Generates a <see cref="T:Microsoft.AspNetCore.Razor.Language.RazorCodeDocument" /> for the specified <paramref name="projectItem" />. /// </summary> /// <param name="projectItem">The <see cref="T:Microsoft.AspNetCore.Razor.Language.RazorProjectItem" />.</param> /// <returns>The created <see cref="T:Microsoft.AspNetCore.Razor.Language.RazorCodeDocument" />.</returns> // Token: 0x06000468 RID: 1128 RVA: 0x00009EB8 File Offset: 0x000080B8 public virtual Microsoft.AspNetCore.Razor.Language.RazorCodeDocument CreateCodeDocument(Microsoft.AspNetCore.Razor.Language.RazorProjectItem projectItem) { if (projectItem == null) { throw new ArgumentNullException("projectItem"); } if (!projectItem.Exists) { throw new InvalidOperationException($"FormatRazorTemplateEngine_ItemCouldNotBeFound {projectItem.FilePath}"); } Microsoft.AspNetCore.Razor.Language.RazorSourceDocument source = Microsoft.AspNetCore.Razor.Language.RazorSourceDocument.ReadFrom(projectItem); IEnumerable <Microsoft.AspNetCore.Razor.Language.RazorSourceDocument> imports = this.GetImports(projectItem); return(Microsoft.AspNetCore.Razor.Language.RazorCodeDocument.Create(source, imports)); }
public void CreateCodeDocument_NullImportFileName_IncludesDefaultImportIfNotNull() { // Arrange var projectItem = new TestRazorProjectItem("/Views/Home/Index.cshtml"); var project = new TestRazorProjectFileSystem(new[] { projectItem }); var razorEngine = RazorEngine.Create(); var defaultImport = RazorSourceDocument.ReadFrom(new MemoryStream(), "Default.cshtml"); var templateEngine = new RazorTemplateEngine(razorEngine, project) { Options = { DefaultImports = defaultImport, } }; // Act var codeDocument = templateEngine.CreateCodeDocument(projectItem); // Assert Assert.Collection(codeDocument.Imports, import => Assert.Same(defaultImport, import)); }
public void ProcessDesignTime_WithImportsAndTagHelpers_SetsOnCodeDocument() { // Arrange var projectItem = new TestRazorProjectItem("Index.cshtml"); var importItem = new TestRazorProjectItem("_import.cshtml"); var expectedImports = new[] { RazorSourceDocument.ReadFrom(importItem) }; var expectedTagHelpers = new[] { TagHelperDescriptorBuilder.Create("TestTagHelper", "TestAssembly").Build(), TagHelperDescriptorBuilder.Create("Test2TagHelper", "TestAssembly").Build(), }; var projectEngine = RazorProjectEngine.Create(RazorConfiguration.Default, TestRazorProjectFileSystem.Empty); // Act var codeDocument = projectEngine.ProcessDesignTime(RazorSourceDocument.ReadFrom(projectItem), expectedImports, expectedTagHelpers); // Assert var tagHelpers = codeDocument.GetTagHelpers(); Assert.Same(expectedTagHelpers, tagHelpers); Assert.Equal(expectedImports, codeDocument.Imports); }
protected internal RazorCodeDocument CreateCodeDocumentCore( RazorSourceDocument sourceDocument, string fileKind = null, IReadOnlyList <RazorSourceDocument> importSourceDocuments = null, IReadOnlyList <TagHelperDescriptor> tagHelpers = null, Action <RazorParserOptionsBuilder> configureParser = null, Action <RazorCodeGenerationOptionsBuilder> configureCodeGeneration = null) { if (sourceDocument == null) { throw new ArgumentNullException(nameof(sourceDocument)); } importSourceDocuments = importSourceDocuments ?? Array.Empty <RazorSourceDocument>(); var parserOptions = GetRequiredFeature <IRazorParserOptionsFactoryProjectFeature>().Create(fileKind, builder => { ConfigureParserOptions(builder); configureParser?.Invoke(builder); }); var codeGenerationOptions = GetRequiredFeature <IRazorCodeGenerationOptionsFactoryProjectFeature>().Create(fileKind, builder => { ConfigureCodeGenerationOptions(builder); configureCodeGeneration?.Invoke(builder); }); var codeDocument = RazorCodeDocument.Create(sourceDocument, importSourceDocuments, parserOptions, codeGenerationOptions); codeDocument.SetTagHelpers(tagHelpers); if (fileKind != null) { codeDocument.SetFileKind(fileKind); } return(codeDocument); }
protected RazorCodeDocument CreateCodeDocumentCore( RazorProjectItem projectItem, Action <RazorParserOptionsBuilder> configureParser, Action <RazorCodeGenerationOptionsBuilder> configureCodeGeneration) { if (projectItem == null) { throw new ArgumentNullException(nameof(projectItem)); } var sourceDocument = RazorSourceDocument.ReadFrom(projectItem); var importItems = new List <RazorProjectItem>(); var features = ProjectFeatures.OfType <IImportProjectFeature>(); foreach (var feature in features) { importItems.AddRange(feature.GetImports(projectItem)); } var importSourceDocuments = GetImportSourceDocuments(importItems); return(CreateCodeDocumentCore(sourceDocument, projectItem.FileKind, importSourceDocuments, tagHelpers: null, configureParser, configureCodeGeneration, cssScope: projectItem.CssScope)); }
/// <summary> /// Gets <see cref="T:RazorSourceDocument" /> that are applicable to the specified <paramref name="projectItem" />. /// </summary> /// <param name="projectItem">The <see cref="T:RazorProjectItem" />.</param> /// <returns>The sequence of applicable <see cref="T:RazorSourceDocument" />.</returns> public virtual IEnumerable <RazorSourceDocument> GetImports(RazorProjectItem projectItem) { if (projectItem == null) { throw new ArgumentNullException("projectItem"); } var list = new List <RazorSourceDocument>(); foreach (var razorProjectItem in this.GetImportItems(projectItem)) { if (razorProjectItem.Exists) { list.Insert(0, RazorSourceDocument.ReadFrom(razorProjectItem)); } } if (this.Options.DefaultImports != null) { list.Insert(0, this.Options.DefaultImports); } return(list); }
public ClassifiedSpanVisitor(RazorSourceDocument source) { _source = source; _spans = new List <ClassifiedSpanInternal>(); _currentBlockKind = BlockKindInternal.Markup; }
public override void Visit(RazorSyntaxTree tree) { _source = tree.Source; Visit(tree.Root); }
public static RazorCodeDocument Create(RazorSourceDocument source, IEnumerable <RazorSourceDocument> imports) { return(new DefaultRazorCodeDocument(source, imports)); }
public virtual RazorCodeDocument ProcessDesignTime(RazorSourceDocument source, string fileKind, IReadOnlyList <RazorSourceDocument> importSources, IReadOnlyList <TagHelperDescriptor> tagHelpers) { throw new NotImplementedException(); }
public TagHelperSpanVisitor(RazorSourceDocument source) { _source = source; _spans = new List <TagHelperSpanInternal>(); }
private NamespaceVisitor(RazorSourceDocument source) { _source = source; }
public Verifier(RazorSourceDocument source) { _currentLocation = new SourceLocation(source.FilePath, 0, 0, 0); _source = source; }
public abstract RazorCodeDocument Process(RazorSourceDocument sourceDocument);
internal virtual RazorCodeDocument CreateCodeDocumentDesignTimeCore(RazorSourceDocument source, IReadOnlyList <RazorSourceDocument> importSources, IReadOnlyList <TagHelperDescriptor> tagHelpers) { return(RazorCodeDocument.Create(source, importSources)); }
public Verifier(RazorSourceDocument source) { _tracker = new SourceLocationTracker(new SourceLocation(source.FilePath, 0, 0, 0)); _source = source; }
public DefaultRazorSourceLineCollection(RazorSourceDocument document) { _document = document; _lineStarts = GetLineStarts(); }