// 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.
namespace Microsoft.AspNetCore.Razor.Language
{
public abstract class RazorCodeGenerationOptionsBuilder
{
public abstract bool DesignTime { get; }
public abstract int IndentSize { get; set; }
public abstract bool IndentWithTabs { get; set; }
///
/// Gets or sets a value that indicates whether to suppress the default #pragma checksum directive in the
/// generated C# code. If false the checkum directive will be included, otherwise it will not be
/// generated. Defaults to false, meaning that the checksum will be included.
///
///
/// The #pragma checksum is required to enable debugging and should only be supressed for testing
/// purposes.
///
public abstract bool SuppressChecksum { get; set; }
///
/// Gets or setsa value that indicates whether to suppress the default metadata attributes in the generated
/// C# code. If false the default attributes will be included, otherwise they will not be generated.
/// Defaults to false at run time, meaning that the attributes will be included. Defaults to
/// true at design time, meaning that the attributes will not be included.
///
///
///
/// The Microsoft.AspNetCore.Razor.Runtime package includes a default set of attributes intended
/// for runtimes to discover metadata about the compiled code.
///
///
/// The default metadata attributes should be suppressed if code generation targets a runtime without
/// a reference to Microsoft.AspNetCore.Razor.Runtime, or for testing purposes.
///
///
public virtual bool SuppressMetadataAttributes { get; set; }
public abstract RazorCodeGenerationOptions Build();
}
}