clang-format: [JS] avoid line breaks before unindented r_parens.
authorMartin Probst <martin@probst.io>
Mon, 22 May 2017 14:58:26 +0000 (14:58 +0000)
committerMartin Probst <martin@probst.io>
Mon, 22 May 2017 14:58:26 +0000 (14:58 +0000)
commitab60acb6983250940093d81117f6bb3fe873e8df
tree4aee730d0089df44a77ee50b447de6f9b722c370
parenta881be87ca7eb5f3806bb7e7daa0a0055eff7418
clang-format: [JS] avoid line breaks before unindented r_parens.

The change that enabled wrapping at the previous scope's indentation had
unintended side-effects in that clang-format would prefer to wrap
closing parentheses to the next line if it avoided a wrap on the next
line (assuming very narrow lines):

    fooObject
        .someCall(barbazbam)
        .then(bam);

Would get formatted as:

    fooObject.someCall(barbazbam
    ).then(bam);

Because the ')' is now indented at the parent level (fooObject).

Normally formatting a builder pattern style call sequence like that is
outlawed in clang-format anyway. However for JavaScript this is special
cased to support trailing .bind calls.

This change disallows this special case when following a closing ')' to
avoid the problem.

Included are some random comment fixes.

Reviewers: djasper

Subscribers: klimek, cfe-commits

Differential Revision: https://reviews.llvm.org/D33399

llvm-svn: 303557
clang/lib/Format/ContinuationIndenter.cpp
clang/lib/Format/TokenAnnotator.cpp
clang/unittests/Format/FormatTestJS.cpp