File: src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Formatting\LineFormattingOptions.cs
Web Access
Project: src\src\CodeStyle\Core\Analyzers\Microsoft.CodeAnalysis.CodeStyle.csproj (Microsoft.CodeAnalysis.CodeStyle)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
 
using System;
using System.Runtime.Serialization;
using Microsoft.CodeAnalysis.Options;
 
namespace Microsoft.CodeAnalysis.Formatting;
 
[DataContract]
internal sealed record class LineFormattingOptions()
{
    public static readonly LineFormattingOptions Default = new();
 
    [DataMember] public bool UseTabs { get; init; } = false;
    [DataMember] public int TabSize { get; init; } = 4;
    [DataMember] public int IndentationSize { get; init; } = 4;
    [DataMember] public string NewLine { get; init; } = Environment.NewLine;
 
    public LineFormattingOptions(IOptionsReader options, string language)
        : this()
    {
        UseTabs = options.GetOption(FormattingOptions2.UseTabs, language);
        TabSize = options.GetOption(FormattingOptions2.TabSize, language);
        IndentationSize = options.GetOption(FormattingOptions2.IndentationSize, language);
        NewLine = options.GetOption(FormattingOptions2.NewLine, language);
    }
}