[PATCH] D11300: Allow PenaltyBreakBeforeFirstCallParameter to not break Obj-C call before first parameter
Kwasi Mensah
kmensah at google.com
Tue Jul 21 08:08:46 PDT 2015
kmensah updated this revision to Diff 30257.
kmensah added a comment.
Fixing per djasper's comments.
Repository:
rL LLVM
http://reviews.llvm.org/D11300
Files:
lib/Format/TokenAnnotator.cpp
unittests/Format/FormatTest.cpp
Index: unittests/Format/FormatTest.cpp
===================================================================
--- unittests/Format/FormatTest.cpp
+++ unittests/Format/FormatTest.cpp
@@ -7323,6 +7323,14 @@
" aaa:aaa];");
verifyFormat("bool a = ([aaaaaaaa aaaaa] == aaaaaaaaaaaaaaaaa ||\n"
" [aaaaaaaa aaaaa] == aaaaaaaaaaaaaaaaaaaa);");
+
+ // Allow PenaltyBreakBeforeFirstCallParameter to stop us from breaking before
+ // the first selector name.
+ FormatStyle selectorBreakStyle = getGoogleStyleWithColumns(60);
+ selectorBreakStyle.PenaltyBreakBeforeFirstCallParameter = 10000;
+ verifyFormat("[self function1:[OtherType function2:longParamaterName1\n"
+ " param:longParameterName2]];",
+ selectorBreakStyle);
}
TEST_F(FormatTest, ObjCAt) {
Index: lib/Format/TokenAnnotator.cpp
===================================================================
--- lib/Format/TokenAnnotator.cpp
+++ lib/Format/TokenAnnotator.cpp
@@ -1745,8 +1745,14 @@
// In Objective-C method expressions, prefer breaking before "param:" over
// breaking after it.
- if (Right.is(TT_SelectorName))
+ if (Right.is(TT_SelectorName)) {
+ // While we prefer breaking before param, if this is the first paramater
+ // apply PenaltyBreakBeforeFirstCallParameter
+ if (Right.LongestObjCSelectorName != 0) {
+ return Style.PenaltyBreakBeforeFirstCallParameter;
+ }
return 0;
+ }
if (Left.is(tok::colon) && Left.is(TT_ObjCMethodExpr))
return Line.MightBeFunctionDecl ? 50 : 500;
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D11300.30257.patch
Type: text/x-patch
Size: 1596 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150721/2e5c261f/attachment.bin>
More information about the cfe-commits
mailing list