diff options
author | Daniel Jasper <djasper@google.com> | 2013-01-18 09:19:33 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2013-01-18 09:19:33 +0000 |
commit | 7d1185de4405637094d64f960f2b6d01f8bce04e (patch) | |
tree | b6c6541cba3bbbd0992fecd86bb2999ac9a2180a /lib/Format/Format.cpp | |
parent | dcc2a6269ba86285b20ee76487807b9cd20cefbe (diff) |
Also align trailing line comments in include directives.
Before:
#include <a> // for x
#include <a/b/c> // for yz
After:
#include <a> // for x
#include <a/b/c> // for yz
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172799 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Format/Format.cpp')
-rw-r--r-- | lib/Format/Format.cpp | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp index 39d70d3e5a..50df593d85 100644 --- a/lib/Format/Format.cpp +++ b/lib/Format/Format.cpp @@ -350,13 +350,15 @@ public: // Start iterating at 1 as we have correctly formatted of Token #0 above. while (State.NextToken != NULL) { - if (State.NextToken->Type == TT_ImplicitStringLiteral) - // We will not touch the rest of the white space in this - // \c UnwrappedLine. The returned value can also not matter, as we - // cannot continue an top-level implicit string literal on the next - // line. - return 0; - if (Line.Last->TotalLength <= getColumnLimit() - FirstIndent) { + if (State.NextToken->Type == TT_ImplicitStringLiteral) { + // Calculating the column is important for aligning trailing comments. + // FIXME: This does not seem to happen in conjunction with escaped + // newlines. If it does, fix! + State.Column += State.NextToken->FormatTok.WhiteSpaceLength + + State.NextToken->FormatTok.TokenLength; + State.NextToken = State.NextToken->Children.empty() ? NULL : + &State.NextToken->Children[0]; + } else if (Line.Last->TotalLength <= getColumnLimit() - FirstIndent) { addTokenToState(false, false, State); } else { unsigned NoBreak = calcPenalty(State, false, UINT_MAX); @@ -1096,7 +1098,9 @@ public: if (CurrentToken != NULL && CurrentToken->is(tok::less)) { next(); while (CurrentToken != NULL) { - CurrentToken->Type = TT_ImplicitStringLiteral; + if (CurrentToken->isNot(tok::comment) || + !CurrentToken->Children.empty()) + CurrentToken->Type = TT_ImplicitStringLiteral; next(); } } else { |