r177075 - Slightly improve formatting of longer pipe statements.

Manuel Klimek klimek at google.com
Thu Mar 14 08:00:56 PDT 2013


On Thu, Mar 14, 2013 at 7:00 AM, Daniel Jasper <djasper at google.com> wrote:

> Author: djasper
> Date: Thu Mar 14 09:00:17 2013
> New Revision: 177075
>
> URL: http://llvm.org/viewvc/llvm-project?rev=177075&view=rev
> Log:
> Slightly improve formatting of longer pipe statements.
>
> The stronger binding of a string ending in :/= does not really make
> sense if it is the only character.
>
> Before:
> llvm::outs() << aaaaaaaaaaaaaaaaaaaaaaaa
>              << "=" << bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb;
>
> After:
> llvm::outs() << aaaaaaaaaaaaaaaaaaaaaaaa << "="
>              << bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb;
>
> 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=177075&r1=177074&r2=177075&view=diff
>
> ==============================================================================
> --- cfe/trunk/lib/Format/TokenAnnotator.cpp (original)
> +++ cfe/trunk/lib/Format/TokenAnnotator.cpp Thu Mar 14 09:00:17 2013
> @@ -934,10 +934,11 @@ unsigned TokenAnnotator::splitPenalty(co
>
>    if (Right.is(tok::lessless)) {
>      if (Left.is(tok::string_literal)) {
> -      char LastChar =
> -          StringRef(Left.FormatTok.Tok.getLiteralData(),
> -
>  Left.FormatTok.TokenLength).drop_back(1).rtrim().back();
> -      if (LastChar == ':' || LastChar == '=')
> +      StringRef Content = StringRef(Left.FormatTok.Tok.getLiteralData(),
> +                                    Left.FormatTok.TokenLength);
> +      Content = Content.drop_back(1).drop_front(1).trim();
> +      if (Content.size() > 1 &&
> +          (Content.back() == ':' || Content.back() == '='))
>

At some point we'll want to add tests for non-narrow and raw string
literals, in which case Content[0] doesn't have to be '"'.


>          return 100;
>      }
>      return prec::Shift;
>
> Modified: cfe/trunk/unittests/Format/FormatTest.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/cfe/trunk/unittests/Format/FormatTest.cpp?rev=177075&r1=177074&r2=177075&view=diff
>
> ==============================================================================
> --- cfe/trunk/unittests/Format/FormatTest.cpp (original)
> +++ cfe/trunk/unittests/Format/FormatTest.cpp Thu Mar 14 09:00:17 2013
> @@ -1628,6 +1628,8 @@ TEST_F(FormatTest, AlignsPipes) {
>        "             << \"ccccccccccccccccc = \" << ccccccccccccccccc\n"
>        "             << \"ddddddddddddddddd = \" << ddddddddddddddddd\n"
>        "             << \"eeeeeeeeeeeeeeeee = \" << eeeeeeeeeeeeeeeee;");
> +  verifyFormat("llvm::outs() << aaaaaaaaaaaaaaaaaaaaaaaa << \"=\"\n"
> +               "             << bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb;");
>  }
>
>  TEST_F(FormatTest, UnderstandsEquals) {
>
>
> _______________________________________________
> 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/20130314/dfe0b9dc/attachment.html>


More information about the cfe-commits mailing list