diff options
author | Daniel Jasper <djasper@google.com> | 2013-12-19 21:41:37 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2013-12-19 21:41:37 +0000 |
commit | 5a611397a2ffdc9f1988e63a6490b0cd64267d65 (patch) | |
tree | 61bc0f6d0c5102e24f65e9c40a548a7d33d9f2da /clang/lib/Format/ContinuationIndenter.cpp | |
parent | 5c6c62f7fc89840201c8a7767f78867025b98f90 (diff) | |
download | bcm5719-llvm-5a611397a2ffdc9f1988e63a6490b0cd64267d65.tar.gz bcm5719-llvm-5a611397a2ffdc9f1988e63a6490b0cd64267d65.zip |
clang-format: Add special case for leading comments in braced lists.
A comment following the "{" of a braced list seems to almost always
refer to the first element of the list and thus should be aligned
to it.
Before (with Cpp11 braced list style):
SomeFunction({ // Comment 1
"first entry",
// Comment 2
"second entry"});
After:
SomeFunction({// Comment 1
"first entry",
// Comment 2
"second entry"});
llvm-svn: 197725
Diffstat (limited to 'clang/lib/Format/ContinuationIndenter.cpp')
-rw-r--r-- | clang/lib/Format/ContinuationIndenter.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/clang/lib/Format/ContinuationIndenter.cpp b/clang/lib/Format/ContinuationIndenter.cpp index 366d26d479a..3860aeb9e75 100644 --- a/clang/lib/Format/ContinuationIndenter.cpp +++ b/clang/lib/Format/ContinuationIndenter.cpp @@ -268,7 +268,7 @@ void ContinuationIndenter::addTokenOnCurrentLine(LineState &State, bool DryRun, } if (Previous.opensScope() && Previous.Type != TT_ObjCMethodExpr && - Current.Type != TT_LineComment) + (Current.Type != TT_LineComment || Previous.BlockKind == BK_BracedInit)) State.Stack.back().Indent = State.Column + Spaces; if (State.Stack.back().AvoidBinPacking && startsNextParameter(Current, Style)) State.Stack.back().NoLineBreak = true; @@ -596,9 +596,11 @@ unsigned ContinuationIndenter::moveStateToNextToken(LineState &State, NewIndent = State.Stack.back().LastSpace; if (Current.opensBlockTypeList(Style)) { NewIndent += Style.IndentWidth; + NewIndent = std::min(State.Column + 2, NewIndent); ++NewIndentLevel; } else { NewIndent += Style.ContinuationIndentWidth; + NewIndent = std::min(State.Column + 1, NewIndent); } } const FormatToken *NextNoComment = Current.getNextNonComment(); |