benhamilton created this revision.
benhamilton added reviewers: krasimir, djasper, klimek.
Herald added a subscriber: cfe-commits.

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


Repository:
  rC Clang

https://reviews.llvm.org/D41195

Files:
  lib/Format/Format.cpp
  unittests/Format/FormatTestObjC.cpp


Index: unittests/Format/FormatTestObjC.cpp
===================================================================
--- unittests/Format/FormatTestObjC.cpp
+++ unittests/Format/FormatTestObjC.cpp
@@ -229,6 +229,7 @@
   verifyFormat("@interface Foo (HackStuff)<MyProtocol>\n"
                "+ (id)init;\n"
                "@end");
+
   Style.BinPackParameters = false;
   Style.ColumnLimit = 80;
   verifyFormat("@interface aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ()<\n"
@@ -382,9 +383,15 @@
                "            ofSize:(size_t)height\n"
                "                  :(size_t)width;");
 
+  Style = getGoogleStyle(FormatStyle::LK_ObjC);
+  // Wrapped method parameters should be indented.
+  verifyFormat("- (VeryLongReturnTypeName)\n"
+               "    veryLongMethodParameter:(VeryLongParameterName)"
+               "thisIsAVeryLongParameterName\n"
+               "        longMethodParameter:(LongParameterName)"
+               "thisIsAlsoAnotherLongParameterName;");
   // 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"
Index: lib/Format/Format.cpp
===================================================================
--- lib/Format/Format.cpp
+++ lib/Format/Format.cpp
@@ -732,6 +732,7 @@
     GoogleStyle.SpacesInContainerLiterals = false;
   } else if (Language == FormatStyle::LK_ObjC) {
     GoogleStyle.ColumnLimit = 100;
+    GoogleStyle.IndentWrappedFunctionNames = true;
   }
 
   return GoogleStyle;


Index: unittests/Format/FormatTestObjC.cpp
===================================================================
--- unittests/Format/FormatTestObjC.cpp
+++ unittests/Format/FormatTestObjC.cpp
@@ -229,6 +229,7 @@
   verifyFormat("@interface Foo (HackStuff)<MyProtocol>\n"
                "+ (id)init;\n"
                "@end");
+
   Style.BinPackParameters = false;
   Style.ColumnLimit = 80;
   verifyFormat("@interface aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ()<\n"
@@ -382,9 +383,15 @@
                "            ofSize:(size_t)height\n"
                "                  :(size_t)width;");
 
+  Style = getGoogleStyle(FormatStyle::LK_ObjC);
+  // Wrapped method parameters should be indented.
+  verifyFormat("- (VeryLongReturnTypeName)\n"
+               "    veryLongMethodParameter:(VeryLongParameterName)"
+               "thisIsAVeryLongParameterName\n"
+               "        longMethodParameter:(LongParameterName)"
+               "thisIsAlsoAnotherLongParameterName;");
   // 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"
Index: lib/Format/Format.cpp
===================================================================
--- lib/Format/Format.cpp
+++ lib/Format/Format.cpp
@@ -732,6 +732,7 @@
     GoogleStyle.SpacesInContainerLiterals = false;
   } else if (Language == FormatStyle::LK_ObjC) {
     GoogleStyle.ColumnLimit = 100;
+    GoogleStyle.IndentWrappedFunctionNames = true;
   }
 
   return GoogleStyle;
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to