r192983 - Make clang-format slightly more willing to break before trailing annotations.
Manuel Klimek
klimek at google.com
Fri Oct 18 10:01:54 PDT 2013
On Fri, Oct 18, 2013 at 9:34 AM, Daniel Jasper <djasper at google.com> wrote:
> Author: djasper
> Date: Fri Oct 18 11:34:40 2013
> New Revision: 192983
>
> URL: http://llvm.org/viewvc/llvm-project?rev=192983&view=rev
> Log:
> Make clang-format slightly more willing to break before trailing
> annotations.
>
> Specifically, prefer breaking before trailing annotations over breaking
> before the first parameter.
>
> Before:
> void ffffffffffffffffffffffff(
> int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
> int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) OVERRIDE;
>
> After:
> void ffffffffffffffffffffffff(int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,
> int aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
> OVERRIDE;
>
> Modified:
> cfe/trunk/lib/Format/TokenAnnotator.cpp
> cfe/trunk/unittests/Format/FormatTest.cpp
>
> Modified: cfe/trunk/lib/Format/TokenAnnotator.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Format/TokenAnnotator.cpp?rev=192983&r1=192982&r2=192983&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Format/TokenAnnotator.cpp (original)
> +++ cfe/trunk/lib/Format/TokenAnnotator.cpp Fri Oct 18 11:34:40 2013
> @@ -1157,7 +1157,7 @@ unsigned TokenAnnotator::splitPenalty(co
> if (Left.is(tok::r_paren) && Line.Type != LT_ObjCProperty &&
> (Right.is(tok::kw_const) || (Right.is(tok::identifier) &&
> Right.Next &&
> Right.Next->isNot(tok::l_paren))))
> - return 150;
> + return 100;
>
Black magic! :)
>
> // In for-loops, prefer breaking at ',' and ';'.
> if (Line.First->is(tok::kw_for) && Left.is(tok::equal))
>
> Modified: cfe/trunk/unittests/Format/FormatTest.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=192983&r1=192982&r2=192983&view=diff
>
> ==============================================================================
> --- cfe/trunk/unittests/Format/FormatTest.cpp (original)
> +++ cfe/trunk/unittests/Format/FormatTest.cpp Fri Oct 18 11:34:40 2013
> @@ -2840,33 +2840,36 @@ TEST_F(FormatTest, TrailingReturnType) {
> }
>
> TEST_F(FormatTest, BreaksFunctionDeclarationsWithTrailingTokens) {
> - // Avoid breaking before trailing 'const'.
> - verifyFormat("void someLongFunction(\n"
> - " int someLongParameter) const {}",
> - getLLVMStyleWithColumns(46));
> + // Avoid breaking before trailing 'const' or other trailing
> annotations, if
> + // they are not function-like.
> FormatStyle Style = getGoogleStyle();
> Style.ColumnLimit = 47;
> verifyFormat("void\n"
> "someLongFunction(int someLongParameter) const {\n}",
> getLLVMStyleWithColumns(47));
> - verifyFormat("void someLongFunction(\n"
> - " int someLongParameter) const {}",
> - Style);
> verifyFormat("LoooooongReturnType\n"
> "someLoooooooongFunction() const {}",
> getLLVMStyleWithColumns(47));
> verifyFormat("LoooooongReturnType someLoooooooongFunction()\n"
> " const {}",
> Style);
> + verifyFormat("void SomeFunction(aaaaa aaaaaaaaaaaaaaaaaaaa,\n"
> + " aaaaa aaaaaaaaaaaaaaaaaaaa) OVERRIDE;");
> + verifyFormat("void SomeFunction(aaaaa aaaaaaaaaaaaaaaaaaaa,\n"
> + " aaaaa aaaaaaaaaaaaaaaaaaaa) OVERRIDE
> FINAL;");
> + verifyFormat("void SomeFunction(aaaaa aaaaaaaaaaaaaaaaaaaa,\n"
> + " aaaaa aaaaaaaaaaaaaaaaaaaa) override
> final;");
>
> - // Avoid breaking before other trailing annotations, if they are not
> - // function-like.
> - verifyFormat("void SomeFunction(aaaaaaaaaaaaaaaaaaaaaaaaaa,\n"
> - " aaaaaaaaaaaaaaaaaaaaaaaaaa) OVERRIDE;");
> - verifyFormat("void SomeFunction(aaaaaaaaaaaaaaaaaaaaaaaaaa,\n"
> - " aaaaaaaaaaaaaaaaaaaaaaaaaa) OVERRIDE
> FINAL;");
> - verifyFormat("void SomeFunction(aaaaaaaaaaaaaaaaaaaaaaaaaa,\n"
> - " aaaaaaaaaaaaaaaaaaaaaaaaaa) override
> final;");
> + // Unless this would lead to the first parameter being broken.
> + verifyFormat("void someLongFunction(int someLongParameter)\n"
> + " const {}",
> + getLLVMStyleWithColumns(46));
> + verifyFormat("void someLongFunction(int someLongParameter)\n"
> + " const {}",
> + Style);
> + verifyFormat("void SomeFunction(aaaaaaaaaa aaaaaaaaaaaaaaa,\n"
> + " aaaaaaaaaa
> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)\n"
> + " LONG_AND_UGLY_ANNOTATION;");
>
> // Breaking before function-like trailing annotations is fine to keep
> them
> // close to their arguments.
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20131018/07cc8b7b/attachment.html>
More information about the cfe-commits
mailing list