From 71ce0c7b2f8fd0ac63ffa523992e4a832a285ea2 Mon Sep 17 00:00:00 2001 From: Ben Hamilton Date: Thu, 14 Dec 2017 16:17:38 +0000 Subject: [PATCH] [ClangFormat] IndentWrappedFunctionNames should be true in the google ObjC style Summary: If we write the following code, it goes over 100 columns, so we need to wrap it: ``` - (VeryLongReturnTypeName)veryLongMethodParameter:(VeryLongParameterName)thisIsAVeryLongParameterName longMethodParameter:(LongParameterName)thisIsAlsoAnotherLongParameterName; ``` Currently, clang-format with the google style aligns the method parameter names on the first column: ``` - (VeryLongReturnTypeName) veryLongMethodParameter:(VeryLongParameterName)thisIsAVeryLongParameterName longMethodParameter:(LongParameterName)thisIsAlsoAnotherLongParameterName; ``` We'd like clang-format in the google style to align these to column 4 for Objective-C: ``` - (VeryLongReturnTypeName) veryLongMethodParameter:(VeryLongParameterName)thisIsAVeryLongParameterName longMethodParameter:(LongParameterName)thisIsAlsoAnotherLongParameterName; ``` Test Plan: make -j12 FormatTests && ./tools/clang/unittests/Format/FormatTests Reviewers: krasimir, djasper, klimek Reviewed By: djasper Subscribers: cfe-commits, thakis Differential Revision: https://reviews.llvm.org/D41195 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@320714 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Format/Format.cpp | 1 + unittests/Format/FormatTestObjC.cpp | 7 +++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp index 217c6729ee..5ddc164459 100644 --- a/lib/Format/Format.cpp +++ b/lib/Format/Format.cpp @@ -732,6 +732,7 @@ FormatStyle getGoogleStyle(FormatStyle::LanguageKind Language) { GoogleStyle.SpacesInContainerLiterals = false; } else if (Language == FormatStyle::LK_ObjC) { GoogleStyle.ColumnLimit = 100; + GoogleStyle.IndentWrappedFunctionNames = true; } return GoogleStyle; diff --git a/unittests/Format/FormatTestObjC.cpp b/unittests/Format/FormatTestObjC.cpp index 4220b44b4c..292466c0aa 100644 --- a/unittests/Format/FormatTestObjC.cpp +++ b/unittests/Format/FormatTestObjC.cpp @@ -382,9 +382,9 @@ TEST_F(FormatTestObjC, FormatObjCMethodDeclarations) { " ofSize:(size_t)height\n" " :(size_t)width;"); + Style = getGoogleStyle(FormatStyle::LK_ObjC); // Continuation indent width should win over aligning colons if the function // name is long. - Style = getGoogleStyle(FormatStyle::LK_ObjC); Style.ColumnLimit = 40; Style.IndentWrappedFunctionNames = true; verifyFormat("- (void)shortf:(GTMFoo *)theFoo\n" @@ -395,7 +395,10 @@ TEST_F(FormatTestObjC, FormatObjCMethodDeclarations) { verifyFormat("- (void)shortf:(GTMFoo *)theFoo\n" " aShortf:(NSRect)theRect {\n" "}"); - + // Wrapped method parameters should be indented. + verifyFormat("- (LongReturnTypeName)\n" + " longParam:(ParamName)longParamName\n" + " param:(paramName)paramName;"); // Format pairs correctly. Style.ColumnLimit = 80; verifyFormat("- (void)drawRectOn:(id)surface\n" -- 2.40.0