summaryrefslogtreecommitdiffstats
path: root/clang/lib/Format/Format.cpp
diff options
context:
space:
mode:
authorDaniel Jasper <djasper@google.com>2013-09-08 14:07:57 +0000
committerDaniel Jasper <djasper@google.com>2013-09-08 14:07:57 +0000
commit9b246e09ced67f228724699e18a10034c6f62c2b (patch)
treee4a6201bad33400b964ceac75bcfcc7127208fb1 /clang/lib/Format/Format.cpp
parent77029be19a22b33f18a0c0c3c8d66f642699e161 (diff)
downloadbcm5719-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.cpp11
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;
OpenPOWER on IntegriCloud