diff options
author | Krasimir Georgiev <krasimir@google.com> | 2017-10-16 09:08:53 +0000 |
---|---|---|
committer | Krasimir Georgiev <krasimir@google.com> | 2017-10-16 09:08:53 +0000 |
commit | 35599fdfa034fcc8506986ad3d83fc3bf581014c (patch) | |
tree | 1d71413e23349a26cc255bae37c49bb85d780b23 /clang/lib/Format/BreakableToken.cpp | |
parent | b583a7ead49d6a9ab8de2d2e8e17a8e8fe106ac1 (diff) | |
download | bcm5719-llvm-35599fdfa034fcc8506986ad3d83fc3bf581014c.tar.gz bcm5719-llvm-35599fdfa034fcc8506986ad3d83fc3bf581014c.zip |
[clang-format] Break non-trailing comments, try 2
Summary:
This patch enables `BreakableToken` to manage the formatting of non-trailing
block comments. It is a refinement of https://reviews.llvm.org/D37007.
We discovered that the optimizer outsmarts us on cases where breaking the comment
costs considerably less than breaking after the comment. This patch addresses
this by ensuring that a newline is inserted between a block comment and the next
token.
Reviewers: djasper
Reviewed By: djasper
Subscribers: cfe-commits, klimek
Differential Revision: https://reviews.llvm.org/D37695
llvm-svn: 315893
Diffstat (limited to 'clang/lib/Format/BreakableToken.cpp')
-rw-r--r-- | clang/lib/Format/BreakableToken.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/lib/Format/BreakableToken.cpp b/clang/lib/Format/BreakableToken.cpp index 8031ab9cd28..bbf3d88eec4 100644 --- a/clang/lib/Format/BreakableToken.cpp +++ b/clang/lib/Format/BreakableToken.cpp @@ -599,6 +599,12 @@ unsigned BreakableBlockComment::getLineLengthAfterSplitBefore( } } +bool BreakableBlockComment::introducesBreakBefore(unsigned LineIndex) const { + // A break is introduced when we want delimiters on newline. + return LineIndex == 0 && DelimitersOnNewline && + Lines[0].substr(1).find_first_not_of(Blanks) != StringRef::npos; +} + void BreakableBlockComment::replaceWhitespaceBefore( unsigned LineIndex, unsigned PreviousEndColumn, unsigned ColumnLimit, Split SplitBefore, WhitespaceManager &Whitespaces) { |