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 | ac6d2e1b1651d87391c0ec1fca29d0ec7deda7c2 (patch) | |
tree | 25b4e42cdf63c0ce4bd3292958e96040204af30c | |
parent | 5dcc66d0b8ddc28ab2400f047a547f0f91e42634 (diff) | |
download | bcm5719-llvm-ac6d2e1b1651d87391c0ec1fca29d0ec7deda7c2.tar.gz bcm5719-llvm-ac6d2e1b1651d87391c0ec1fca29d0ec7deda7c2.zip |
[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
llvm-svn: 353284
-rw-r--r-- | clang-tools-extra/clangd/tool/ClangdMain.cpp | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/clang-tools-extra/clangd/tool/ClangdMain.cpp b/clang-tools-extra/clangd/tool/ClangdMain.cpp index 69732ebff4f..6c102edaf5a 100644 --- a/clang-tools-extra/clangd/tool/ClangdMain.cpp +++ b/clang-tools-extra/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, |