diff --git a/Src/CSharpier.Tests/FormattingTests/TestFiles/cs/OptionalBraces.expected.test b/Src/CSharpier.Tests/FormattingTests/TestFiles/cs/OptionalBraces.expected.test new file mode 100644 index 000000000..1749214d2 --- /dev/null +++ b/Src/CSharpier.Tests/FormattingTests/TestFiles/cs/OptionalBraces.expected.test @@ -0,0 +1,12 @@ +if (true) + CallMethod(); +else if (false) + CallMethod(); +else + CallMethod(); + +for (; ; ) + CallMethod(); + +while (true) + CallMethod(); diff --git a/Src/CSharpier.Tests/FormattingTests/TestFiles/cs/OptionalBraces.test b/Src/CSharpier.Tests/FormattingTests/TestFiles/cs/OptionalBraces.test new file mode 100644 index 000000000..2690cf1a2 --- /dev/null +++ b/Src/CSharpier.Tests/FormattingTests/TestFiles/cs/OptionalBraces.test @@ -0,0 +1,17 @@ +if (true) + + CallMethod(); +else if (false) + + CallMethod(); +else + + CallMethod(); + +for (; ; ) + + CallMethod(); + +while (true) + + CallMethod(); diff --git a/Src/CSharpier/CSharpFormatter.cs b/Src/CSharpier/CSharpFormatter.cs index 5d49fb129..2ef245efa 100644 --- a/Src/CSharpier/CSharpFormatter.cs +++ b/Src/CSharpier/CSharpFormatter.cs @@ -126,7 +126,9 @@ await syntaxTree.GetRootAsync(cancellationToken), ); formattedCode = DocPrinter.DocPrinter.Print(document, printerOptions, lineEnding); reorderedModifiers = reorderedModifiers || formattingContext2.ReorderedModifiers; - reorderedUsingsWithDisabledText = reorderedUsingsWithDisabledText || formattingContext2.ReorderedUsingsWithDisabledText; + reorderedUsingsWithDisabledText = + reorderedUsingsWithDisabledText + || formattingContext2.ReorderedUsingsWithDisabledText; } return new CodeFormatterResult diff --git a/Src/CSharpier/DocTypes/DocUtilities.cs b/Src/CSharpier/DocTypes/DocUtilities.cs index c0ff716c2..d2792bc2a 100644 --- a/Src/CSharpier/DocTypes/DocUtilities.cs +++ b/Src/CSharpier/DocTypes/DocUtilities.cs @@ -63,14 +63,14 @@ private static void RemoveInitialDoubleHardLine(IList docs, ref bool remove x++; } - - return; } - public static void RemoveInitialDoubleHardLine(Doc doc) + public static Doc RemoveInitialDoubleHardLine(Doc doc) { var removeNextHardLine = false; RemoveInitialDoubleHardLine(doc, ref removeNextHardLine); + + return doc; } private static void RemoveInitialDoubleHardLine(Doc doc, ref bool removeNextHardLine) diff --git a/Src/CSharpier/SyntaxPrinter/OptionalBraces.cs b/Src/CSharpier/SyntaxPrinter/OptionalBraces.cs index b3853758d..f489294b8 100644 --- a/Src/CSharpier/SyntaxPrinter/OptionalBraces.cs +++ b/Src/CSharpier/SyntaxPrinter/OptionalBraces.cs @@ -6,6 +6,8 @@ public static Doc Print(StatementSyntax node, FormattingContext context) { return node is BlockSyntax blockSyntax ? Block.Print(blockSyntax, context) - : Doc.Indent(Doc.HardLine, Node.Print(node, context)); + : DocUtilities.RemoveInitialDoubleHardLine( + Doc.Indent(Doc.HardLine, Node.Print(node, context)) + ); } }