diff options
author | Alexander Kornienko <alexfh@google.com> | 2017-03-03 11:16:34 +0000 |
---|---|---|
committer | Alexander Kornienko <alexfh@google.com> | 2017-03-03 11:16:34 +0000 |
commit | 58b93f8657f1cce97417d954eacfaa8546aaa949 (patch) | |
tree | edeab677253d3dd51f2b68f3d413081c1cf29593 /clang-tidy/ClangTidy.cpp | |
parent | 75c562be48e8ef92542bc0ac5eb2eb620b9ac848 (diff) |
[clang-tidy] Format code around applied fixes
Summary:
Add -format option (disabled by default for now) to trigger formatting
of replacements.
Reviewers: ioeric
Reviewed By: ioeric
Subscribers: kimgr, malcolm.parsons, JDevlieghere, cfe-commits
Differential Revision: https://reviews.llvm.org/D30564
git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@296864 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'clang-tidy/ClangTidy.cpp')
-rw-r--r-- | clang-tidy/ClangTidy.cpp | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/clang-tidy/ClangTidy.cpp b/clang-tidy/ClangTidy.cpp index 75aaefd5..2da9e142 100644 --- a/clang-tidy/ClangTidy.cpp +++ b/clang-tidy/ClangTidy.cpp @@ -183,7 +183,6 @@ public: } void Finish() { - // FIXME: Run clang-format on changes. if (ApplyFixes && TotalFixes > 0) { Rewriter Rewrite(SourceMgr, LangOpts); for (const auto &FileAndReplacements : FileReplacements) { @@ -197,19 +196,28 @@ public: continue; } StringRef Code = Buffer.get()->getBuffer(); - auto Style = format::getStyle("file", File, FormatStyle); + auto Style = format::getStyle(FormatStyle, File, "none"); if (!Style) { llvm::errs() << llvm::toString(Style.takeError()) << "\n"; continue; } - llvm::Expected<Replacements> CleanReplacements = + llvm::Expected<tooling::Replacements> Replacements = format::cleanupAroundReplacements(Code, FileAndReplacements.second, *Style); - if (!CleanReplacements) { - llvm::errs() << llvm::toString(CleanReplacements.takeError()) << "\n"; + if (!Replacements) { + llvm::errs() << llvm::toString(Replacements.takeError()) << "\n"; continue; } - if (!tooling::applyAllReplacements(CleanReplacements.get(), Rewrite)) { + if (llvm::Expected<tooling::Replacements> FormattedReplacements = + format::formatReplacements(Code, *Replacements, *Style)) { + Replacements = std::move(FormattedReplacements); + if (!Replacements) + llvm_unreachable("!Replacements"); + } else { + llvm::errs() << llvm::toString(FormattedReplacements.takeError()) + << ". Skipping formatting.\n"; + } + if (!tooling::applyAllReplacements(Replacements.get(), Rewrite)) { llvm::errs() << "Can't apply replacements for file " << File << "\n"; } } |