summaryrefslogtreecommitdiffstats
path: root/clang/lib/Format/ContinuationIndenter.h
diff options
context:
space:
mode:
authorDaniel Jasper <djasper@google.com>2013-08-27 14:24:43 +0000
committerDaniel Jasper <djasper@google.com>2013-08-27 14:24:43 +0000
commit4c6e00595b444b958bf11a68cceed9d43dbacbc4 (patch)
tree170afc94af26e9920953fc9377badec9e75d4db5 /clang/lib/Format/ContinuationIndenter.h
parent5320c2b563d9b6e40c24753325d448d3be6d14b6 (diff)
downloadbcm5719-llvm-4c6e00595b444b958bf11a68cceed9d43dbacbc4.tar.gz
bcm5719-llvm-4c6e00595b444b958bf11a68cceed9d43dbacbc4.zip
clang-format: Format segments of builder-type calls one per line.
This fixes llvm.org/PR14818. Before: return llvm::StringSwitch<Reference::Kind>(name) .StartsWith(".eh_frame_hdr", ORDER_EH_FRAMEHDR) .StartsWith(".eh_frame", ORDER_EH_FRAME) .StartsWith(".init", ORDER_INIT).StartsWith(".fini", ORDER_FINI) .StartsWith(".hash", ORDER_HASH).Default(ORDER_TEXT); After: return llvm::StringSwitch<Reference::Kind>(name) .StartsWith(".eh_frame_hdr", ORDER_EH_FRAMEHDR) .StartsWith(".eh_frame", ORDER_EH_FRAME) .StartsWith(".init", ORDER_INIT) .StartsWith(".fini", ORDER_FINI) .StartsWith(".hash", ORDER_HASH) .Default(ORDER_TEXT); llvm-svn: 189353
Diffstat (limited to 'clang/lib/Format/ContinuationIndenter.h')
-rw-r--r--clang/lib/Format/ContinuationIndenter.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/clang/lib/Format/ContinuationIndenter.h b/clang/lib/Format/ContinuationIndenter.h
index e234c3e7efd..81d14ad0a22 100644
--- a/clang/lib/Format/ContinuationIndenter.h
+++ b/clang/lib/Format/ContinuationIndenter.h
@@ -108,7 +108,8 @@ struct ParenState {
AvoidBinPacking(AvoidBinPacking), BreakBeforeParameter(false),
NoLineBreak(NoLineBreak), ColonPos(0), StartOfFunctionCall(0),
StartOfArraySubscripts(0), NestedNameSpecifierContinuation(0),
- CallContinuation(0), VariablePos(0), ContainsLineBreak(false) {}
+ CallContinuation(0), VariablePos(0), ContainsLineBreak(false),
+ ContainsUnwrappedBuilder(0) {}
/// \brief The position to which a specific parenthesis level needs to be
/// indented.
@@ -178,6 +179,10 @@ struct ParenState {
/// parenthesis.
bool ContainsLineBreak;
+ /// \brief \c true if this \c ParenState contains multiple segments of a
+ /// builder-type call on one line.
+ bool ContainsUnwrappedBuilder;
+
bool operator<(const ParenState &Other) const {
if (Indent != Other.Indent)
return Indent < Other.Indent;
@@ -207,6 +212,8 @@ struct ParenState {
return VariablePos < Other.VariablePos;
if (ContainsLineBreak != Other.ContainsLineBreak)
return ContainsLineBreak < Other.ContainsLineBreak;
+ if (ContainsUnwrappedBuilder != Other.ContainsUnwrappedBuilder)
+ return ContainsUnwrappedBuilder < Other.ContainsUnwrappedBuilder;
return false;
}
};
OpenPOWER on IntegriCloud