Mercurial > hg > CbC > CbC_llvm
comparison clang-tools-extra/clangd/TidyProvider.h @ 221:79ff65ed7e25
LLVM12 Original
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 15 Jun 2021 19:15:29 +0900 |
parents | |
children | c4bab56944e8 |
comparison
equal
deleted
inserted
replaced
220:42394fc6a535 | 221:79ff65ed7e25 |
---|---|
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/STLExtras.h" | |
16 #include "llvm/ADT/StringRef.h" | |
17 | |
18 namespace clang { | |
19 namespace clangd { | |
20 | |
21 /// A factory to modify a \ref tidy::ClangTidyOptions. | |
22 using TidyProvider = | |
23 llvm::unique_function<void(tidy::ClangTidyOptions &, | |
24 /*Filename=*/llvm::StringRef) const>; | |
25 | |
26 /// A factory to modify a \ref tidy::ClangTidyOptions that doesn't hold any | |
27 /// state. | |
28 using TidyProviderRef = llvm::function_ref<void(tidy::ClangTidyOptions &, | |
29 /*Filename=*/llvm::StringRef)>; | |
30 | |
31 TidyProvider combine(std::vector<TidyProvider> Providers); | |
32 | |
33 /// Provider that just sets the defaults. | |
34 TidyProviderRef provideEnvironment(); | |
35 | |
36 /// Provider that will enable a nice set of default checks if none are | |
37 /// specified. | |
38 TidyProviderRef provideDefaultChecks(); | |
39 | |
40 /// Provider the enables a specific set of checks and warnings as errors. | |
41 TidyProvider addTidyChecks(llvm::StringRef Checks, | |
42 llvm::StringRef WarningsAsErrors = {}); | |
43 | |
44 /// Provider that will disable checks known to not work with clangd. \p | |
45 /// ExtraBadChecks specifies any other checks that should be always | |
46 /// disabled. | |
47 TidyProvider | |
48 disableUnusableChecks(llvm::ArrayRef<std::string> ExtraBadChecks = {}); | |
49 | |
50 /// Provider that searches for .clang-tidy configuration files in the directory | |
51 /// tree. | |
52 TidyProvider provideClangTidyFiles(ThreadsafeFS &); | |
53 | |
54 // Provider that uses clangd configuration files. | |
55 TidyProviderRef provideClangdConfig(); | |
56 | |
57 tidy::ClangTidyOptions getTidyOptionsForFile(TidyProviderRef Provider, | |
58 llvm::StringRef Filename); | |
59 | |
60 /// Returns if \p Check is a registered clang-tidy check | |
61 /// \pre \p must not be empty, must not contain '*' or ',' or start with '-'. | |
62 bool isRegisteredTidyCheck(llvm::StringRef Check); | |
63 | |
64 } // namespace clangd | |
65 } // namespace clang | |
66 | |
67 #endif // LLVM_CLANG_TOOLS_EXTRA_CLANGD_TIDYPROVIDER_H |