diff options
| author | Manuel Klimek <klimek@google.com> | 2015-05-12 09:23:57 +0000 |
|---|---|---|
| committer | Manuel Klimek <klimek@google.com> | 2015-05-12 09:23:57 +0000 |
| commit | 3d3ea84a4f8fcdf1f4c17b80c10389b92b6ad502 (patch) | |
| tree | 119ae2caf435e20d2a0620cee16a02dc6d6d55fc /llvm/lib/Support/TargetParser.cpp | |
| parent | 108c325d6edca86aec9a86132bb7c657471ab40c (diff) | |
| download | llvm-3d3ea84a4f8fcdf1f4c17b80c10389b92b6ad502.zip llvm-3d3ea84a4f8fcdf1f4c17b80c10389b92b6ad502.tar.gz llvm-3d3ea84a4f8fcdf1f4c17b80c10389b92b6ad502.tar.bz2 | |
Refactor clang-format's formatter.
Summary:
a) Pull out a class LevelIndentTracker whose responsibility is to keep track
of the indent of levels across multiple annotated lines.
b) Put all responsibility for merging lines into the LineJoiner; make the
LineJoiner iterate over the lines so we never operate on a line that might
be merged later; this makes the interface safer to use.
c) Move formatting of the end-of-file whitespace into formatFirstToken.
Fix bugs that became obvious after the refactoring:
1. We would not format lines with offsets correctly inside nested blocks if
only the outer expression was affected:
int x = s({ // clang-format only this line
class X {
public:
// ^ this starts at the non-modified indnent level; previously we would
// not fix this, now we correctly outdent it.
void f();
};
});
2. We would incorrectly align comments across lines that do not have comments
for lines with nested blocks:
int expression; // with comment
int x = s({
int y; // comment
int z; // we would incorrectly align this comment with the comment on
// 'expression'
});
llvm-svn: 237104
Diffstat (limited to 'llvm/lib/Support/TargetParser.cpp')
0 files changed, 0 insertions, 0 deletions
