50 lines
1.9 KiB
C#
50 lines
1.9 KiB
C#
// Copyright (c) .NET Foundation. All rights reserved.
|
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
|
|
using System.Linq;
|
|
using Microsoft.AspNetCore.Razor.Language.Intermediate;
|
|
|
|
namespace Microsoft.AspNetCore.Razor.Language
|
|
{
|
|
internal class DefaultDocumentClassifierPass : DocumentClassifierPassBase
|
|
{
|
|
public override int Order => DefaultFeatureOrder;
|
|
|
|
protected override string DocumentKind => "default";
|
|
|
|
protected override bool IsMatch(RazorCodeDocument codeDocument, DocumentIntermediateNode documentNode)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
protected override void OnDocumentStructureCreated(
|
|
RazorCodeDocument codeDocument,
|
|
NamespaceDeclarationIntermediateNode @namespace,
|
|
ClassDeclarationIntermediateNode @class,
|
|
MethodDeclarationIntermediateNode method)
|
|
{
|
|
var configuration = Engine.Features.OfType<DefaultDocumentClassifierPassFeature>().FirstOrDefault();
|
|
if (configuration != null)
|
|
{
|
|
for (var i = 0; i < configuration.ConfigureClass.Count; i++)
|
|
{
|
|
var configureClass = configuration.ConfigureClass[i];
|
|
configureClass(codeDocument, @class);
|
|
}
|
|
|
|
for (var i = 0; i < configuration.ConfigureNamespace.Count; i++)
|
|
{
|
|
var configureNamespace = configuration.ConfigureNamespace[i];
|
|
configureNamespace(codeDocument, @namespace);
|
|
}
|
|
|
|
for (var i = 0; i < configuration.ConfigureMethod.Count; i++)
|
|
{
|
|
var configureMethod = configuration.ConfigureMethod[i];
|
|
configureMethod(codeDocument, @method);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|