Author: Jonathan Coe Date: 2020-06-04T15:48:00+01:00 New Revision: 9520bf146dd3baae8608755d7de0855db4664c77
URL: https://github.com/llvm/llvm-project/commit/9520bf146dd3baae8608755d7de0855db4664c77 DIFF: https://github.com/llvm/llvm-project/commit/9520bf146dd3baae8608755d7de0855db4664c77.diff LOG: [clang-format] Update GoogleStyle for C# code to match Google's internal C# style guide Summary: Google's C# style guide is at https://google.github.io/styleguide/csharp-style.html Reviewers: krasimir, MyDeveloperDay, sammccall Reviewed By: MyDeveloperDay Subscribers: cfe-commits, klimek Tags: #clang-format, #clang Differential Revision: https://reviews.llvm.org/D79715 Added: Modified: clang/lib/Format/Format.cpp clang/unittests/Format/FormatTestCSharp.cpp Removed: ################################################################################ diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index f3743921d52e..1f7a8029bac0 100644 --- 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 @@ FormatStyle getGoogleStyle(FormatStyle::LanguageKind Language) { // #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 index 5567e19e5bdd..dd2ed292ccd8 100644 --- a/clang/unittests/Format/FormatTestCSharp.cpp +++ b/clang/unittests/Format/FormatTestCSharp.cpp @@ -583,8 +583,7 @@ TEST_F(FormatTestCSharp, CSharpNamedArguments) { 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 @@ class TimePeriod { 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 @@ TEST_F(FormatTestCSharp, CSharpNullableTypes) { 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 @@ class Dictionary<TKey, TVal> where TKey : IComparable<TKey> where TVal : IMyInterface { public void MyMethod<T>(T t) - where T : IMyInterface { doThing(); } + where T : IMyInterface { + doThing(); + } })", Style); verifyFormat(R"(// class ItemFactory<T> - where T : new(), - IAnInterface<T>, - IAnotherInterface<T>, - IAnotherInterfaceStill<T> {})", + where T : new(), IAnInterface<T>, IAnotherInterface<T>, IAnotherInterfaceStill<T> {})", Style); Style.ColumnLimit = 50; // Force lines to be wrapped. _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits