diff options
author | Daniel Jasper <djasper@google.com> | 2014-06-03 12:02:45 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2014-06-03 12:02:45 +0000 |
commit | 114a2bc9d25de52a1beacd18aff3a07929c64910 (patch) | |
tree | 60e4dad973d46a8daba7302d9a1b82575598e543 /clang/lib/Format/FormatToken.h | |
parent | be6d91f1ba7472469dfe865df3d9eb3b0cde0791 (diff) | |
download | bcm5719-llvm-114a2bc9d25de52a1beacd18aff3a07929c64910.tar.gz bcm5719-llvm-114a2bc9d25de52a1beacd18aff3a07929c64910.zip |
clang-format: Refactor indentation behavior for multiple nested blocks.
This fixes a few oddities when formatting multiple nested JavaScript
blocks, e.g.:
Before:
promise.then(
function success() {
doFoo();
doBar();
},
[], function error() {
doFoo();
doBaz();
});
promise.then([],
function success() {
doFoo();
doBar();
},
function error() {
doFoo();
doBaz();
});
After:
promise.then(
function success() {
doFoo();
doBar();
},
[],
function error() {
doFoo();
doBaz();
});
promise.then([],
function success() {
doFoo();
doBar();
},
function error() {
doFoo();
doBaz();
});
llvm-svn: 210097
Diffstat (limited to 'clang/lib/Format/FormatToken.h')
-rw-r--r-- | clang/lib/Format/FormatToken.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/clang/lib/Format/FormatToken.h b/clang/lib/Format/FormatToken.h index f2bba324e67..90208b60658 100644 --- a/clang/lib/Format/FormatToken.h +++ b/clang/lib/Format/FormatToken.h @@ -103,9 +103,10 @@ struct FormatToken { IsFirst(false), MustBreakBefore(false), IsUnterminatedLiteral(false), BlockKind(BK_Unknown), Type(TT_Unknown), SpacesRequiredBefore(0), CanBreakBefore(false), ClosesTemplateDeclaration(false), - ParameterCount(0), PackingKind(PPK_Inconclusive), TotalLength(0), - UnbreakableTailLength(0), BindingStrength(0), NestingLevel(0), - SplitPenalty(0), LongestObjCSelectorName(0), FakeRParens(0), + ParameterCount(0), BlockParameterCount(0), + PackingKind(PPK_Inconclusive), TotalLength(0), UnbreakableTailLength(0), + BindingStrength(0), NestingLevel(0), SplitPenalty(0), + LongestObjCSelectorName(0), FakeRParens(0), StartsBinaryExpression(false), EndsBinaryExpression(false), OperatorIndex(0), LastOperator(false), PartOfMultiVariableDeclStmt(false), IsForEachMacro(false), @@ -191,6 +192,10 @@ struct FormatToken { /// the number of commas. unsigned ParameterCount; + /// \brief Number of parameters that are nested blocks, + /// if this is "(", "[" or "<". + unsigned BlockParameterCount; + /// \brief A token can have a special role that can carry extra information /// about the token's formatting. std::unique_ptr<TokenRole> Role; |