clang-tools  15.0.0git
TidyProvider.h
Go to the documentation of this file.
1 //===--- TidyProvider.h - create options for running clang-tidy------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANGD_TIDYPROVIDER_H
10 #define LLVM_CLANG_TOOLS_EXTRA_CLANGD_TIDYPROVIDER_H
11 
12 #include "../clang-tidy/ClangTidyOptions.h"
13 #include "support/ThreadsafeFS.h"
14 #include "llvm/ADT/FunctionExtras.h"
15 #include "llvm/ADT/StringRef.h"
16 
17 namespace clang {
18 namespace clangd {
19 
20 /// A factory to modify a \ref tidy::ClangTidyOptions.
21 using TidyProvider =
22  llvm::unique_function<void(tidy::ClangTidyOptions &,
23  /*Filename=*/llvm::StringRef) const>;
24 
25 /// A factory to modify a \ref tidy::ClangTidyOptions that doesn't hold any
26 /// state.
27 using TidyProviderRef = llvm::function_ref<void(tidy::ClangTidyOptions &,
28  /*Filename=*/llvm::StringRef)>;
29 
30 TidyProvider combine(std::vector<TidyProvider> Providers);
31 
32 /// Provider that just sets the defaults.
34 
35 /// Provider that will enable a nice set of default checks if none are
36 /// specified.
38 
39 /// Provider the enables a specific set of checks and warnings as errors.
40 TidyProvider addTidyChecks(llvm::StringRef Checks,
41  llvm::StringRef WarningsAsErrors = {});
42 
43 /// Provider that will disable checks known to not work with clangd. \p
44 /// ExtraBadChecks specifies any other checks that should be always
45 /// disabled.
47 disableUnusableChecks(llvm::ArrayRef<std::string> ExtraBadChecks = {});
48 
49 /// Provider that searches for .clang-tidy configuration files in the directory
50 /// tree.
51 TidyProvider provideClangTidyFiles(ThreadsafeFS &);
52 
53 // Provider that uses clangd configuration files.
55 
56 tidy::ClangTidyOptions getTidyOptionsForFile(TidyProviderRef Provider,
57  llvm::StringRef Filename);
58 
59 /// Returns if \p Check is a registered clang-tidy check
60 /// \pre \p must not be empty, must not contain '*' or ',' or start with '-'.
61 bool isRegisteredTidyCheck(llvm::StringRef Check);
62 
63 } // namespace clangd
64 } // namespace clang
65 
66 #endif // LLVM_CLANG_TOOLS_EXTRA_CLANGD_TIDYPROVIDER_H
clang::clangd::provideClangdConfig
TidyProviderRef provideClangdConfig()
Definition: TidyProvider.cpp:246
Checks
static cl::opt< std::string > Checks("checks", cl::desc(R"( Comma-separated list of globs with optional '-' prefix. Globs are processed in order of appearance in the list. Globs without '-' prefix add checks with matching names to the set, globs with the '-' prefix remove checks with matching names from the set of enabled checks. This option's value is appended to the value of the 'Checks' option in .clang-tidy file, if any. )"), cl::init(""), cl::cat(ClangTidyCategory))
clang::clangd::getTidyOptionsForFile
tidy::ClangTidyOptions getTidyOptionsForFile(TidyProviderRef Provider, llvm::StringRef Filename)
Definition: TidyProvider.cpp:277
clang::clangd::provideClangTidyFiles
TidyProvider provideClangTidyFiles(ThreadsafeFS &TFS)
Provider that searches for .clang-tidy configuration files in the directory tree.
Definition: TidyProvider.cpp:259
Filename
std::string Filename
Filename as a string.
Definition: IncludeOrderCheck.cpp:39
clang::tidy::ClangTidyOptions
Contains options for clang-tidy.
Definition: ClangTidyOptions.h:50
ThreadsafeFS.h
clang::clangd::TidyProvider
llvm::unique_function< void(tidy::ClangTidyOptions &, llvm::StringRef) const > TidyProvider
A factory to modify a tidy::ClangTidyOptions.
Definition: TidyProvider.h:23
clang::clangd::provideEnvironment
TidyProviderRef provideEnvironment()
Provider that just sets the defaults.
Definition: TidyProvider.cpp:150
clang::clangd::isRegisteredTidyCheck
bool isRegisteredTidyCheck(llvm::StringRef Check)
Returns if Check is a registered clang-tidy check.
Definition: TidyProvider.cpp:286
WarningsAsErrors
static cl::opt< std::string > WarningsAsErrors("warnings-as-errors", cl::desc(R"( Upgrades warnings to errors. Same format as '-checks'. This option's value is appended to the value of the 'WarningsAsErrors' option in .clang-tidy file, if any. )"), cl::init(""), cl::cat(ClangTidyCategory))
clang
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
Definition: ApplyReplacements.h:27
clang::clangd::disableUnusableChecks
TidyProvider disableUnusableChecks(llvm::ArrayRef< std::string > ExtraBadChecks)
Provider that will disable checks known to not work with clangd.
Definition: TidyProvider.cpp:195
clang::clangd::provideDefaultChecks
TidyProviderRef provideDefaultChecks()
Provider that will enable a nice set of default checks if none are specified.
Definition: TidyProvider.cpp:168
clang::clangd::TidyProviderRef
llvm::function_ref< void(tidy::ClangTidyOptions &, llvm::StringRef)> TidyProviderRef
A factory to modify a tidy::ClangTidyOptions that doesn't hold any state.
Definition: TidyProvider.h:28
clang::clangd::addTidyChecks
TidyProvider addTidyChecks(llvm::StringRef Checks, llvm::StringRef WarningsAsErrors)
Provider the enables a specific set of checks and warnings as errors.
Definition: TidyProvider.cpp:185
clang::clangd::combine
TidyProvider combine(std::vector< TidyProvider > Providers)
Definition: TidyProvider.cpp:266