diff options
author | Daniel Jasper <djasper@google.com> | 2016-01-05 13:06:27 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2016-01-05 13:06:27 +0000 |
commit | 0a589416e89dbcc1747ce4c2fe053bae53f66bf6 (patch) | |
tree | 1f8fc5cd9b9901e6d1592c104b2e4cb4f0011b1a /clang/lib/Format | |
parent | 801cdb27e4639ffab3bec7141ed16c8830c44e62 (diff) | |
download | bcm5719-llvm-0a589416e89dbcc1747ce4c2fe053bae53f66bf6.tar.gz bcm5719-llvm-0a589416e89dbcc1747ce4c2fe053bae53f66bf6.zip |
clang-format: Handle \n the same way as std::endl with stream operator.
clang-format breaks multi-line streams after std::endl.
It now also break for '\n', the suggested replacement for std::endl:
http://llvm.org/docs/CodingStandards.html#avoid-std-endl
Before:
llvm::errs() << aaaaaaaaaaaaaaaaaaaaaa << '\n' << bbbbbbbbbbbbbbbbbbbbbb
<< '\n';
llvm::errs() << aaaa << "aaaaaaaaaaaaaaaaaa\n" << bbbb
<< "bbbbbbbbbbbbbbbbbb\n";
After:
llvm::errs() << aaaaaaaaaaaaaaaaaaaaaa << '\n'
<< bbbbbbbbbbbbbbbbbbbbbb << '\n';
llvm::errs() << aaaa << "aaaaaaaaaaaaaaaaaa\n"
<< bbbb << "bbbbbbbbbbbbbbbbbb\n";
This changeset ensure that multiline streams have a line break after:
- std::endl
- '\n'
- "\n"
- "Some Text\n"
Patch by Jean-Philippe Dufraigne, thank you.
llvm-svn: 256832
Diffstat (limited to 'clang/lib/Format')
-rw-r--r-- | clang/lib/Format/ContinuationIndenter.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/clang/lib/Format/ContinuationIndenter.cpp b/clang/lib/Format/ContinuationIndenter.cpp index e7e13667ded..d81b0f611a7 100644 --- a/clang/lib/Format/ContinuationIndenter.cpp +++ b/clang/lib/Format/ContinuationIndenter.cpp @@ -257,8 +257,10 @@ bool ContinuationIndenter::mustBreak(const LineState &State) { Previous.is(tok::l_brace) && !Current.isOneOf(tok::r_brace, tok::comment)) return true; - if (Current.is(tok::lessless) && Previous.is(tok::identifier) && - Previous.TokenText == "endl") + if (Current.is(tok::lessless) && + ((Previous.is(tok::identifier) && Previous.TokenText == "endl") || + (Previous.Tok.isLiteral() && (Previous.TokenText.endswith("\\n\"") || + Previous.TokenText == "\'\\n\'")))) return true; return false; |