aboutsummaryrefslogtreecommitdiff
path: root/lib/Format/Format.cpp
diff options
context:
space:
mode:
authorDaniel Jasper <djasper@google.com>2013-01-18 09:19:33 +0000
committerDaniel Jasper <djasper@google.com>2013-01-18 09:19:33 +0000
commit7d1185de4405637094d64f960f2b6d01f8bce04e (patch)
treeb6c6541cba3bbbd0992fecd86bb2999ac9a2180a /lib/Format/Format.cpp
parentdcc2a6269ba86285b20ee76487807b9cd20cefbe (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.cpp20
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 {