// 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. namespace Microsoft.CodeAnalysis.Formatting; internal readonly struct LineColumn(int line, int column, bool whitespaceOnly) { public static LineColumn Default = new(line: 0, column: 0, whitespaceOnly: true); /// <summary> /// absolute line number from first token /// </summary> public readonly int Line = line; /// <summary> /// absolute column from beginning of a line /// </summary> public readonly int Column = column; /// <summary> /// there is only whitespace on this line /// </summary> public readonly bool WhitespaceOnly = whitespaceOnly; public LineColumn With(LineColumnDelta delta) { if (delta.Lines <= 0) { return new LineColumn( Line, Column + delta.Spaces, WhitespaceOnly && delta.WhitespaceOnly); } return new LineColumn( Line + delta.Lines, delta.Spaces, delta.WhitespaceOnly); } } |