diff options
author | Haojian Wu <hokein@google.com> | 2019-02-06 09:10:47 +0000 |
---|---|---|
committer | Haojian Wu <hokein@google.com> | 2019-02-06 09:10:47 +0000 |
commit | d4d90c7519231d1d2a8e10d0ea74392ab9d07d25 (patch) | |
tree | a6be60bf85f71c6e7cd858f4125443cf9175a4a7 | |
parent | 584fcfea9a5f6c010a0e32ea077cb517ed8df56d (diff) | |
download | clang-tools-extra-d4d90c7519231d1d2a8e10d0ea74392ab9d07d25.tar.gz |
[clangd] Add CLI flag "-clang-tidy" to enable/disable running clang-tidy checks.
Reviewers: sammccall
Subscribers: ilya-biryukov, ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D57746
git-svn-id: https://llvm.org/svn/llvm-project/clang-tools-extra/trunk@353284 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | clangd/tool/ClangdMain.cpp | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/clangd/tool/ClangdMain.cpp b/clangd/tool/ClangdMain.cpp index 69732ebf..6c102eda 100644 --- a/clangd/tool/ClangdMain.cpp +++ b/clangd/tool/ClangdMain.cpp @@ -203,10 +203,16 @@ static llvm::cl::opt<bool> EnableFunctionArgSnippets( static llvm::cl::opt<std::string> ClangTidyChecks( "clang-tidy-checks", - llvm::cl::desc("List of clang-tidy checks to run (this will override " - ".clang-tidy files)"), + llvm::cl::desc( + "List of clang-tidy checks to run (this will override " + ".clang-tidy files). Only meaningful when -clang-tidy flag is on."), llvm::cl::init("")); +static llvm::cl::opt<bool> EnableClangTidy( + "clang-tidy", + llvm::cl::desc("Enable clang-tidy diagnostics."), + llvm::cl::init(false)); + static llvm::cl::opt<bool> SuggestMissingIncludes( "suggest-missing-includes", llvm::cl::desc("Attempts to fix diagnostic errors caused by missing " @@ -441,13 +447,16 @@ int main(int argc, char *argv[]) { } // Create an empty clang-tidy option. - auto OverrideClangTidyOptions = tidy::ClangTidyOptions::getDefaults(); - OverrideClangTidyOptions.Checks = ClangTidyChecks; - tidy::FileOptionsProvider ClangTidyOptProvider( - tidy::ClangTidyGlobalOptions(), - /* Default */ tidy::ClangTidyOptions::getDefaults(), - /* Override */ OverrideClangTidyOptions, FSProvider.getFileSystem()); - Opts.ClangTidyOptProvider = &ClangTidyOptProvider; + std::unique_ptr<tidy::ClangTidyOptionsProvider> ClangTidyOptProvider; + if (EnableClangTidy) { + auto OverrideClangTidyOptions = tidy::ClangTidyOptions::getDefaults(); + OverrideClangTidyOptions.Checks = ClangTidyChecks; + ClangTidyOptProvider = llvm::make_unique<tidy::FileOptionsProvider>( + tidy::ClangTidyGlobalOptions(), + /* Default */ tidy::ClangTidyOptions::getDefaults(), + /* Override */ OverrideClangTidyOptions, FSProvider.getFileSystem()); + } + Opts.ClangTidyOptProvider = ClangTidyOptProvider.get(); Opts.SuggestMissingIncludes = SuggestMissingIncludes; ClangdLSPServer LSPServer( *TransportLayer, FSProvider, CCOpts, CompileCommandsDirPath, |