diff options
author | Daniel Jasper <djasper@google.com> | 2013-09-08 14:07:57 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2013-09-08 14:07:57 +0000 |
commit | 9b246e09ced67f228724699e18a10034c6f62c2b (patch) | |
tree | e4a6201bad33400b964ceac75bcfcc7127208fb1 /clang/lib/Format/Format.cpp | |
parent | 77029be19a22b33f18a0c0c3c8d66f642699e161 (diff) | |
download | bcm5719-llvm-9b246e09ced67f228724699e18a10034c6f62c2b.tar.gz bcm5719-llvm-9b246e09ced67f228724699e18a10034c6f62c2b.zip |
clang-format: Keep empty lines and format 1-line nested blocks.
Let clang-format consistently keep up to one empty line (configured via
FormatStyle::MaxEmptyLinesToKeep) in nested blocks, e.g. lambdas. Also,
actually format single statements in nested blocks.
Before:
DEBUG({ int i; });
DEBUG({
int i;
// an empty line here would just be removed.
int j;
});
After:
DEBUG({ int i; });
DEBUG({
int i;
int j;
});
llvm-svn: 190278
Diffstat (limited to 'clang/lib/Format/Format.cpp')
-rw-r--r-- | clang/lib/Format/Format.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index ce39c480e78..fe6660b3bc3 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -530,10 +530,14 @@ private: I != E; ++I) { unsigned Indent = ParentIndent + ((*I)->Level - Line.Level) * Style.IndentWidth; - if (!DryRun) + if (!DryRun) { + unsigned Newlines = std::min((*I)->First->NewlinesBefore, + Style.MaxEmptyLinesToKeep + 1); + Newlines = std::max(1u, Newlines); Whitespaces->replaceWhitespace( - *(*I)->First, /*Newlines=*/1, /*Spaces=*/Indent, + *(*I)->First, Newlines, /*Spaces=*/Indent, /*StartOfTokenColumn=*/Indent, Line.InPPDirective); + } UnwrappedLineFormatter Formatter(Indenter, Whitespaces, Style, **I); Penalty += Formatter.format(Indent, DryRun); } @@ -552,6 +556,9 @@ private: /*Newlines=*/0, /*Spaces=*/1, /*StartOfTokenColumn=*/State.Column, State.Line->InPPDirective); + UnwrappedLineFormatter Formatter(Indenter, Whitespaces, Style, + *LBrace.Children[0]); + Penalty += Formatter.format(State.Column + 1, DryRun); } State.Column += 1 + LBrace.Children[0]->Last->TotalLength; |