diff options
author | Haojian Wu <hokein@google.com> | 2017-10-20 12:37:16 +0000 |
---|---|---|
committer | Haojian Wu <hokein@google.com> | 2017-10-20 12:37:16 +0000 |
commit | d6aede0fad127fa8eedd339e9594bf30cbd98294 (patch) | |
tree | c1c1943bd1c6d2b935275eac90fcf96040c6b200 /tools | |
parent | a312801e78a7627965158838eae1fb9a10487af7 (diff) |
[clang-refactor] Add "-Inplace" option to the commandline tool.
Summary:
Change clang-refactor default behavior to print the new code after refactoring
(instead of editing the source files), which would make it easier to use
and debug the refactoring action.
Reviewers: arphaman, ioeric
Reviewed By: arphaman
Subscribers: cfe-commits
Differential Revision: https://reviews.llvm.org/D39092
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316212 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools')
-rw-r--r-- | tools/clang-refactor/ClangRefactor.cpp | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/tools/clang-refactor/ClangRefactor.cpp b/tools/clang-refactor/ClangRefactor.cpp index ed9bf5ed28..523c3a6220 100644 --- a/tools/clang-refactor/ClangRefactor.cpp +++ b/tools/clang-refactor/ClangRefactor.cpp @@ -40,6 +40,11 @@ static cl::OptionCategory CommonRefactorOptions("Refactoring options"); static cl::opt<bool> Verbose("v", cl::desc("Use verbose output"), cl::cat(cl::GeneralCategory), cl::sub(*cl::AllSubCommands)); + +static cl::opt<bool> Inplace("i", cl::desc("Inplace edit <file>s"), + cl::cat(cl::GeneralCategory), + cl::sub(*cl::AllSubCommands)); + } // end namespace opts namespace { @@ -436,13 +441,18 @@ public: return true; } - std::error_code EC; - llvm::raw_fd_ostream OS(File, EC, llvm::sys::fs::F_Text); - if (EC) { - llvm::errs() << EC.message() << "\n"; - return true; + if (opts::Inplace) { + std::error_code EC; + llvm::raw_fd_ostream OS(File, EC, llvm::sys::fs::F_Text); + if (EC) { + llvm::errs() << EC.message() << "\n"; + return true; + } + OS << *Result; + continue; } - OS << *Result; + + llvm::outs() << *Result; } return false; } |