aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHaojian Wu <hokein@google.com>2019-02-06 09:10:47 +0000
committerHaojian Wu <hokein@google.com>2019-02-06 09:10:47 +0000
commitd4d90c7519231d1d2a8e10d0ea74392ab9d07d25 (patch)
treea6be60bf85f71c6e7cd858f4125443cf9175a4a7
parent584fcfea9a5f6c010a0e32ea077cb517ed8df56d (diff)
downloadclang-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.cpp27
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,