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