aboutsummaryrefslogtreecommitdiff
path: root/clang-tidy/ClangTidy.cpp
diff options
context:
space:
mode:
authorAlexander Kornienko <alexfh@google.com>2017-03-03 11:16:34 +0000
committerAlexander Kornienko <alexfh@google.com>2017-03-03 11:16:34 +0000
commit58b93f8657f1cce97417d954eacfaa8546aaa949 (patch)
treeedeab677253d3dd51f2b68f3d413081c1cf29593 /clang-tidy/ClangTidy.cpp
parent75c562be48e8ef92542bc0ac5eb2eb620b9ac848 (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.cpp20
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";
}
}