summaryrefslogtreecommitdiffstats
path: root/clang-tools-extra/clangd/tool/ClangdMain.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'clang-tools-extra/clangd/tool/ClangdMain.cpp')
-rw-r--r--clang-tools-extra/clangd/tool/ClangdMain.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/clang-tools-extra/clangd/tool/ClangdMain.cpp b/clang-tools-extra/clangd/tool/ClangdMain.cpp
index 80f3f45e672..c969a5b7cfb 100644
--- a/clang-tools-extra/clangd/tool/ClangdMain.cpp
+++ b/clang-tools-extra/clangd/tool/ClangdMain.cpp
@@ -201,6 +201,12 @@ static llvm::cl::opt<bool> EnableFunctionArgSnippets(
"placeholders for method parameters."),
llvm::cl::init(CodeCompleteOptions().EnableFunctionArgSnippets));
+static llvm::cl::opt<std::string> ClangTidyChecks(
+ "clang-tidy-checks",
+ llvm::cl::desc("List of clang-tidy checks to run (this will overrides "
+ ".clang-tidy files)"),
+ llvm::cl::init(""), llvm::cl::Hidden);
+
namespace {
/// \brief Supports a test URI scheme with relaxed constraints for lit tests.
@@ -408,6 +414,7 @@ int main(int argc, char *argv[]) {
CCOpts.EnableFunctionArgSnippets = EnableFunctionArgSnippets;
CCOpts.AllScopes = AllScopesCompletion;
+ RealFileSystemProvider FSProvider;
// Initialize and run ClangdLSPServer.
// Change stdin to binary to not lose \r\n on windows.
llvm::sys::ChangeStdinToBinary();
@@ -427,8 +434,16 @@ int main(int argc, char *argv[]) {
PrettyPrint, InputStyle);
}
+ // 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;
ClangdLSPServer LSPServer(
- *TransportLayer, CCOpts, CompileCommandsDirPath,
+ *TransportLayer, FSProvider, CCOpts, CompileCommandsDirPath,
/*UseDirBasedCDB=*/CompileArgsFrom == FilesystemCompileArgs, Opts);
llvm::set_thread_name("clangd.main");
return LSPServer.run() ? 0
OpenPOWER on IntegriCloud