diff options
author | Daniel Jasper <djasper@google.com> | 2013-03-01 16:45:59 +0000 |
---|---|---|
committer | Daniel Jasper <djasper@google.com> | 2013-03-01 16:45:59 +0000 |
commit | 812c045e591495b940f5a9102b146bb43b970e1f (patch) | |
tree | 9f29d30c9abb798daef8ba4960dda0b33def14c9 /lib/Format/Format.cpp | |
parent | bc30c71d20f05bc39b5dd73f06ee4dede9c55710 (diff) |
Remove trailing whitespace of line comments.
This fixed llvm.org/PR15378.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176351 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Format/Format.cpp')
-rw-r--r-- | lib/Format/Format.cpp | 43 |
1 files changed, 29 insertions, 14 deletions
diff --git a/lib/Format/Format.cpp b/lib/Format/Format.cpp index 01813ef6c8..5fd49157bd 100644 --- a/lib/Format/Format.cpp +++ b/lib/Format/Format.cpp @@ -116,20 +116,30 @@ public: // Align line comments if they are trailing or if they continue other // trailing comments. - if (isTrailingComment(Tok) && (Tok.Parent != NULL || !Comments.empty())) { - if (Style.ColumnLimit >= - Spaces + WhitespaceStartColumn + Tok.FormatTok.TokenLength) { - Comments.push_back(StoredComment()); - Comments.back().Tok = Tok.FormatTok; - Comments.back().Spaces = Spaces; - Comments.back().NewLines = NewLines; - if (NewLines == 0) - Comments.back().MinColumn = WhitespaceStartColumn + Spaces; - else - Comments.back().MinColumn = Spaces; - Comments.back().MaxColumn = - Style.ColumnLimit - Tok.FormatTok.TokenLength; - return; + if (isTrailingComment(Tok)) { + // Remove the comment's trailing whitespace. + if (Tok.FormatTok.Tok.getLength() != Tok.FormatTok.TokenLength) + Replaces.insert(tooling::Replacement( + SourceMgr, Tok.FormatTok.Tok.getLocation().getLocWithOffset( + Tok.FormatTok.TokenLength), + Tok.FormatTok.Tok.getLength() - Tok.FormatTok.TokenLength, "")); + + // Align comment with other comments. + if (Tok.Parent != NULL || !Comments.empty()) { + if (Style.ColumnLimit >= + Spaces + WhitespaceStartColumn + Tok.FormatTok.TokenLength) { + Comments.push_back(StoredComment()); + Comments.back().Tok = Tok.FormatTok; + Comments.back().Spaces = Spaces; + Comments.back().NewLines = NewLines; + if (NewLines == 0) + Comments.back().MinColumn = WhitespaceStartColumn + Spaces; + else + Comments.back().MinColumn = Spaces; + Comments.back().MaxColumn = + Style.ColumnLimit - Tok.FormatTok.TokenLength; + return; + } } } @@ -1017,6 +1027,11 @@ public: GreaterStashed = true; } + // If we reformat comments, we remove trailing whitespace. Update the length + // accordingly. + if (FormatTok.Tok.is(tok::comment)) + FormatTok.TokenLength = Text.rtrim().size(); + return FormatTok; } |