Skip to content

Commit

Permalink
Multi-line enumeration formatting starts on a new line
Browse files Browse the repository at this point in the history
  • Loading branch information
benagain committed Apr 23, 2023
1 parent 34b10f2 commit 5b3368a
Showing 1 changed file with 17 additions and 3 deletions.
20 changes: 17 additions & 3 deletions Src/FluentAssertions/Formatting/FormattedObjectGraph.cs
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,15 @@ internal void EnsureInitialNewLine()
{
if (LineCount == 0 && lineBuilder.Length == 0)
{
AddLine(string.Empty);
InsertInitialNewLine();
}
}

private void InsertInitialNewLine()
{
if (lines.Count == 0 || !string.IsNullOrEmpty(lines[0]))
{
lines.Insert(0, string.Empty);
}
}

Expand Down Expand Up @@ -156,7 +164,7 @@ internal record PossibleMultilineFragment
{
private readonly FormattedObjectGraph parentGraph;
private readonly int startingLineBuilderIndex;
private readonly int startingLineCount;
private int startingLineCount;

public PossibleMultilineFragment(FormattedObjectGraph parentGraph)
{
Expand All @@ -181,7 +189,13 @@ internal void AddStartingLineOrFragment(string fragment)
}
else
{
parentGraph.lines.Insert(startingLineCount, Environment.NewLine + fragment);
if (startingLineCount == 0)
{
++startingLineCount;
parentGraph.InsertInitialNewLine();
}

parentGraph.lines.Insert(startingLineCount, fragment);
InsertAtStartOfLine(startingLineCount + 1, MakeWhitespace(1));
}
}
Expand Down

0 comments on commit 5b3368a

Please sign in to comment.