diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -14,6 +14,7 @@ #include "clang/Format/Format.h" #include "AffectedRangeManager.h" +#include "BreakableToken.h" #include "ContinuationIndenter.h" #include "FormatInternal.h" #include "FormatTokenLexer.h" @@ -1068,6 +1069,12 @@ // #imports, etc.) GoogleStyle.IncludeStyle.IncludeBlocks = tooling::IncludeStyle::IBS_Preserve; + } else if (Language == FormatStyle::LK_CSharp) { + GoogleStyle.AllowShortFunctionsOnASingleLine = FormatStyle::SFS_Empty; + GoogleStyle.AllowShortIfStatementsOnASingleLine = FormatStyle::SIS_Never; + GoogleStyle.BreakStringLiterals = false; + GoogleStyle.ColumnLimit = 100; + GoogleStyle.NamespaceIndentation = FormatStyle::NI_All; } return GoogleStyle; diff --git a/clang/unittests/Format/FormatTestCSharp.cpp b/clang/unittests/Format/FormatTestCSharp.cpp --- a/clang/unittests/Format/FormatTestCSharp.cpp +++ b/clang/unittests/Format/FormatTestCSharp.cpp @@ -583,8 +583,7 @@ FormatStyle Style = getGoogleStyle(FormatStyle::LK_CSharp); verifyFormat(R"(// -PrintOrderDetails(orderNum: 31, productName: "Red Mug", - sellerName: "Gift Shop");)", +PrintOrderDetails(orderNum: 31, productName: "Red Mug", sellerName: "Gift Shop");)", Style); // Ensure that trailing comments do not cause problems. @@ -641,8 +640,7 @@ get { return _seconds / 3600; } set { if (value < 0 || value > 24) - throw new ArgumentOutOfRangeException( - $"{nameof(value)} must be between 0 and 24."); + throw new ArgumentOutOfRangeException($"{nameof(value)} must be between 0 and 24."); _seconds = value * 3600; } } @@ -755,7 +753,9 @@ verifyFormat(R"(// public class A { - void foo() { int? value = some.bar(); } + void foo() { + int? value = some.bar(); + } })", Style); // int? is nullable not a conditional expression. @@ -800,16 +800,15 @@ where TKey : IComparable where TVal : IMyInterface { public void MyMethod(T t) - where T : IMyInterface { doThing(); } + where T : IMyInterface { + doThing(); + } })", Style); verifyFormat(R"(// class ItemFactory - where T : new(), - IAnInterface, - IAnotherInterface, - IAnotherInterfaceStill {})", + where T : new(), IAnInterface, IAnotherInterface, IAnotherInterfaceStill {})", Style); Style.ColumnLimit = 50; // Force lines to be wrapped.