diff options
author | Daniel Jasper <djasper@google.com> | 2016-01-05 13:03:59 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2016-01-05 13:03:59 +0000 |
commit | 801cdb27e4639ffab3bec7141ed16c8830c44e62 (patch) | |
tree | 93458b9c2809006c35f12eb0244a94092f991582 /clang/lib/Format | |
parent | 00492f96bf62c545ab2843eb7a00c6320aa846e6 (diff) | |
download | bcm5719-llvm-801cdb27e4639ffab3bec7141ed16c8830c44e62.tar.gz bcm5719-llvm-801cdb27e4639ffab3bec7141ed16c8830c44e62.zip |
clang-format: Avoid creating hanging indents in call sequences.
Before:
aaaaaaaaaaaaaaaa.aaaaaaaaaaaaaaaaaaa(
aaaaaaaaaaaaaaaaaaaa)
.aaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
After:
aaaaaaaaaaaaaaaa
.aaaaaaaaaaaaaaaaaaa(aaaaaaaaaaaaaaaaaaaa)
.aaa(aaaaaaaaaaaaaaaaaaaaaaaaaaaaa);
llvm-svn: 256831
Diffstat (limited to 'clang/lib/Format')
-rw-r--r-- | clang/lib/Format/ContinuationIndenter.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/clang/lib/Format/ContinuationIndenter.cpp b/clang/lib/Format/ContinuationIndenter.cpp index 317ef0021dc..e7e13667ded 100644 --- a/clang/lib/Format/ContinuationIndenter.cpp +++ b/clang/lib/Format/ContinuationIndenter.cpp @@ -38,6 +38,12 @@ static unsigned getLengthToMatchingParen(const FormatToken &Tok) { return End->TotalLength - Tok.TotalLength + 1; } +static unsigned getLengthToNextOperator(const FormatToken &Tok) { + if (!Tok.NextOperator) + return 0; + return Tok.NextOperator->TotalLength - Tok.TotalLength; +} + // Returns \c true if \c Tok is the "." or "->" of a call and starts the next // segment of a builder type call. static bool startsSegmentOfBuilderTypeCall(const FormatToken &Tok) { @@ -174,6 +180,10 @@ bool ContinuationIndenter::mustBreak(const LineState &State) { if (State.Column < NewLineColumn) return false; + if (Current.isMemberAccess() && + State.Column + getLengthToNextOperator(Current) > Style.ColumnLimit) + return true; + if (Style.AlwaysBreakBeforeMultilineStrings && (NewLineColumn == State.FirstIndent + Style.ContinuationIndentWidth || Previous.is(tok::comma) || Current.NestingLevel < 2) && |