| File: Language\RazorParserOptions.Builder.cs | Web Access |
| Project: src\roslyn\src\Razor\src\Compiler\Microsoft.CodeAnalysis.Razor.Compiler\src\Microsoft.CodeAnalysis.Razor.Compiler.csproj (Microsoft.CodeAnalysis.Razor.Compiler) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Collections.Immutable; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; namespace Microsoft.AspNetCore.Razor.Language; public sealed partial class RazorParserOptions { public sealed class Builder { public RazorLanguageVersion LanguageVersion { get; } public RazorFileKind FileKind { get; } private Flags _flags; public ImmutableArray<DirectiveDescriptor> Directives { get; set => field = value.NullToEmpty(); } public CSharpParseOptions CSharpParseOptions { get; set => field = value ?? CSharpParseOptions.Default; } internal Builder(RazorLanguageVersion languageVersion, RazorFileKind fileKind) { LanguageVersion = languageVersion ?? DefaultLanguageVersion; FileKind = fileKind; Directives = []; CSharpParseOptions = CSharpParseOptions.Default; _flags = GetDefaultFlags(LanguageVersion, FileKind); } public bool ParseLeadingDirectives { get => _flags.IsFlagSet(Flags.ParseLeadingDirectives); set => _flags.UpdateFlag(Flags.ParseLeadingDirectives, value); } public bool UseRoslynTokenizer { get => _flags.IsFlagSet(Flags.UseRoslynTokenizer); set => _flags.UpdateFlag(Flags.UseRoslynTokenizer, value); } internal bool EnableSpanEditHandlers { get => _flags.IsFlagSet(Flags.EnableSpanEditHandlers); set => _flags.UpdateFlag(Flags.EnableSpanEditHandlers, value); } internal bool AllowMinimizedBooleanTagHelperAttributes { get => _flags.IsFlagSet(Flags.AllowMinimizedBooleanTagHelperAttributes); set => _flags.UpdateFlag(Flags.AllowMinimizedBooleanTagHelperAttributes, value); } internal bool AllowHtmlCommentsInTagHelpers { get => _flags.IsFlagSet(Flags.AllowHtmlCommentsInTagHelpers); set => _flags.UpdateFlag(Flags.AllowHtmlCommentsInTagHelpers, value); } internal bool AllowComponentFileKind { get => _flags.IsFlagSet(Flags.AllowComponentFileKind); set => _flags.UpdateFlag(Flags.AllowComponentFileKind, value); } internal bool AllowRazorInAllCodeBlocks { get => _flags.IsFlagSet(Flags.AllowRazorInAllCodeBlocks); set => _flags.UpdateFlag(Flags.AllowRazorInAllCodeBlocks, value); } internal bool AllowUsingVariableDeclarations { get => _flags.IsFlagSet(Flags.AllowUsingVariableDeclarations); set => _flags.UpdateFlag(Flags.AllowUsingVariableDeclarations, value); } internal bool AllowConditionalDataDashAttributes { get => _flags.IsFlagSet(Flags.AllowConditionalDataDashAttributes); set => _flags.UpdateFlag(Flags.AllowConditionalDataDashAttributes, value); } internal bool AllowCSharpInMarkupAttributeArea { get => _flags.IsFlagSet(Flags.AllowCSharpInMarkupAttributeArea); set => _flags.UpdateFlag(Flags.AllowCSharpInMarkupAttributeArea, value); } internal bool AllowNullableForgivenessOperator { get => _flags.IsFlagSet(Flags.AllowNullableForgivenessOperator); set => _flags.UpdateFlag(Flags.AllowNullableForgivenessOperator, value); } public RazorParserOptions ToOptions() => new(LanguageVersion, FileKind, Directives, CSharpParseOptions, _flags); } }