Addressed Taylors feedback

This commit is contained in:
Ryan Nowak 2018-02-13 15:39:32 -08:00
parent 82579b6333
commit 0c6ec09958
2 changed files with 61 additions and 61 deletions

View File

@ -54,48 +54,7 @@ namespace Microsoft.AspNetCore.Razor.Language
public override IReadOnlyList<IRazorProjectEngineFeature> ProjectFeatures { get; }
protected override void ConfigureParserOptions(RazorParserOptionsBuilder builder)
{
if (builder == null)
{
throw new ArgumentNullException(nameof(builder));
}
}
protected override void ConfigureDesignTimeParserOptions(RazorParserOptionsBuilder builder)
{
if (builder == null)
{
throw new ArgumentNullException(nameof(builder));
}
builder.SetDesignTime(true);
}
protected override void ConfigureCodeGenerationOptions(RazorCodeGenerationOptionsBuilder builder)
{
if (builder == null)
{
throw new ArgumentNullException(nameof(builder));
}
}
protected override void ConfigureDesignTimeCodeGenerationOptions(RazorCodeGenerationOptionsBuilder builder)
{
if (builder == null)
{
throw new ArgumentNullException(nameof(builder));
}
builder.SetDesignTime(true);
builder.SuppressChecksum = true;
builder.SuppressMetadataAttributes = true;
}
protected override RazorCodeDocument ProcessCore(
RazorProjectItem projectItem,
Action<RazorParserOptionsBuilder> configureParser,
Action<RazorCodeGenerationOptionsBuilder> configureCodeGeneration)
protected override RazorCodeDocument CreateCodeDocumentCore(RazorProjectItem projectItem)
{
if (projectItem == null)
{
@ -107,14 +66,38 @@ namespace Microsoft.AspNetCore.Razor.Language
var importFeature = GetRequiredFeature<IImportProjectFeature>();
var imports = importFeature.GetImports(projectItem);
var parserOptions = GetRequiredFeature<IRazorParserOptionsFactoryProjectFeature>().Create(configureParser);
var codeGenerationOptions = GetRequiredFeature<IRazorCodeGenerationOptionsFactoryProjectFeature>().Create(configureCodeGeneration);
var parserOptions = GetRequiredFeature<IRazorParserOptionsFactoryProjectFeature>().Create(ConfigureParserOptions);
var codeGenerationOptions = GetRequiredFeature<IRazorCodeGenerationOptionsFactoryProjectFeature>().Create(ConfigureCodeGenerationOptions);
var codeDocument = RazorCodeDocument.Create(sourceDocument, imports, parserOptions, codeGenerationOptions);
return RazorCodeDocument.Create(sourceDocument, imports, parserOptions, codeGenerationOptions);
}
protected override RazorCodeDocument CreateCodeDocumentDesignTimeCore(RazorProjectItem projectItem)
{
if (projectItem == null)
{
throw new ArgumentNullException(nameof(projectItem));
}
var sourceDocument = RazorSourceDocument.ReadFrom(projectItem);
var importFeature = GetRequiredFeature<IImportProjectFeature>();
var imports = importFeature.GetImports(projectItem);
var parserOptions = GetRequiredFeature<IRazorParserOptionsFactoryProjectFeature>().Create(ConfigureDesignTimeParserOptions);
var codeGenerationOptions = GetRequiredFeature<IRazorCodeGenerationOptionsFactoryProjectFeature>().Create(ConfigureDesignTimeCodeGenerationOptions);
return RazorCodeDocument.Create(sourceDocument, imports, parserOptions, codeGenerationOptions);
}
protected override void ProcessCore(RazorCodeDocument codeDocument)
{
if (codeDocument == null)
{
throw new ArgumentNullException(nameof(codeDocument));
}
Engine.Process(codeDocument);
return codeDocument;
}
private TFeature GetRequiredFeature<TFeature>() where TFeature : IRazorProjectEngineFeature
@ -130,5 +113,25 @@ namespace Microsoft.AspNetCore.Razor.Language
return feature;
}
private void ConfigureParserOptions(RazorParserOptionsBuilder builder)
{
}
private void ConfigureDesignTimeParserOptions(RazorParserOptionsBuilder builder)
{
builder.SetDesignTime(true);
}
private void ConfigureCodeGenerationOptions(RazorCodeGenerationOptionsBuilder builder)
{
}
private void ConfigureDesignTimeCodeGenerationOptions(RazorCodeGenerationOptionsBuilder builder)
{
builder.SetDesignTime(true);
builder.SuppressChecksum = true;
builder.SuppressMetadataAttributes = true;
}
}
}

View File

@ -22,14 +22,6 @@ namespace Microsoft.AspNetCore.Razor.Language
public abstract IReadOnlyList<IRazorProjectEngineFeature> ProjectFeatures { get; }
protected abstract void ConfigureParserOptions(RazorParserOptionsBuilder builder);
protected abstract void ConfigureDesignTimeParserOptions(RazorParserOptionsBuilder builder);
protected abstract void ConfigureCodeGenerationOptions(RazorCodeGenerationOptionsBuilder builder);
protected abstract void ConfigureDesignTimeCodeGenerationOptions(RazorCodeGenerationOptionsBuilder builder);
public virtual RazorCodeDocument Process(RazorProjectItem projectItem)
{
if (projectItem == null)
@ -37,7 +29,9 @@ namespace Microsoft.AspNetCore.Razor.Language
throw new ArgumentNullException(nameof(projectItem));
}
return ProcessCore(projectItem, ConfigureParserOptions, ConfigureCodeGenerationOptions);
var codeDocument = CreateCodeDocumentCore(projectItem);
ProcessCore(codeDocument);
return codeDocument;
}
public virtual RazorCodeDocument ProcessDesignTime(RazorProjectItem projectItem)
@ -47,13 +41,16 @@ namespace Microsoft.AspNetCore.Razor.Language
throw new ArgumentNullException(nameof(projectItem));
}
return ProcessCore(projectItem, ConfigureDesignTimeParserOptions, ConfigureDesignTimeCodeGenerationOptions);
var codeDocument = CreateCodeDocumentDesignTimeCore(projectItem);
ProcessCore(codeDocument);
return codeDocument;
}
protected abstract RazorCodeDocument ProcessCore(
RazorProjectItem projectItem,
Action<RazorParserOptionsBuilder> configureParser,
Action<RazorCodeGenerationOptionsBuilder> configureCodeGeneration);
protected abstract RazorCodeDocument CreateCodeDocumentCore(RazorProjectItem projectItem);
protected abstract RazorCodeDocument CreateCodeDocumentDesignTimeCore(RazorProjectItem projectItem);
protected abstract void ProcessCore(RazorCodeDocument codeDocument);
public static RazorProjectEngine Create(RazorConfiguration configuration, RazorProjectFileSystem fileSystem) => Create(configuration, fileSystem, configure: null);