clang-tools  14.0.0git
GoogleTidyModule.cpp
Go to the documentation of this file.
1 //===--- GoogleTidyModule.cpp - 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 #include "../ClangTidy.h"
10 #include "../ClangTidyModule.h"
11 #include "../ClangTidyModuleRegistry.h"
12 #include "../readability/BracesAroundStatementsCheck.h"
13 #include "../readability/FunctionSizeCheck.h"
14 #include "../readability/NamespaceCommentCheck.h"
15 #include "AvoidCStyleCastsCheck.h"
16 #include "AvoidNSObjectNewCheck.h"
19 #include "DefaultArgumentsCheck.h"
21 #include "ExplicitMakePairCheck.h"
22 #include "FunctionNamingCheck.h"
25 #include "IntegerTypesCheck.h"
27 #include "TodoCommentCheck.h"
31 
32 using namespace clang::ast_matchers;
33 
34 namespace clang {
35 namespace tidy {
36 namespace google {
37 
38 class GoogleModule : public ClangTidyModule {
39  public:
40  void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override {
42  "google-build-explicit-make-pair");
44  "google-build-namespaces");
46  "google-build-using-namespace");
47  CheckFactories.registerCheck<DefaultArgumentsCheck>(
48  "google-default-arguments");
50  "google-explicit-constructor");
52  "google-global-names-in-headers");
54  "google-objc-avoid-nsobject-new");
56  "google-objc-avoid-throwing-exception");
58  "google-objc-function-naming");
60  "google-objc-global-variable-declaration");
62  "google-runtime-int");
64  "google-runtime-operator");
65  CheckFactories
67  "google-readability-avoid-underscore-in-googletest-name");
69  "google-readability-casting");
71  "google-readability-todo");
72  CheckFactories
74  "google-readability-braces-around-statements");
76  "google-readability-function-size");
77  CheckFactories
79  "google-readability-namespace-comments");
81  "google-upgrade-googletest-case");
82  }
83 
85  ClangTidyOptions Options;
86  auto &Opts = Options.CheckOptions;
87  Opts["google-readability-braces-around-statements.ShortStatementLines"] =
88  "1";
89  Opts["google-readability-function-size.StatementThreshold"] = "800";
90  Opts["google-readability-namespace-comments.ShortNamespaceLines"] = "10";
91  Opts["google-readability-namespace-comments.SpacesBeforeComments"] = "2";
92  return Options;
93  }
94 };
95 
96 // Register the GoogleTidyModule using this statically initialized variable.
97 static ClangTidyModuleRegistry::Add<GoogleModule> X("google-module",
98  "Adds Google lint checks.");
99 
100 } // namespace google
101 
102 // This anchor is used to force the linker to link in the generated object file
103 // and thus register the GoogleModule.
104 volatile int GoogleModuleAnchorSource = 0;
105 
106 } // namespace tidy
107 } // namespace clang
clang::tidy::google::readability::TodoCommentCheck
Finds TODO comments without a username or bug number.
Definition: TodoCommentCheck.h:25
clang::tidy::readability::NamespaceCommentCheck
Checks that long namespaces have a closing comment.
Definition: NamespaceCommentCheck.h:24
ExplicitConstructorCheck.h
clang::tidy::google::readability::GlobalNamesInHeadersCheck
Flag global namespace pollution in header files.
Definition: GlobalNamesInHeadersCheck.h:33
UsingNamespaceDirectiveCheck.h
clang::tidy::readability::BracesAroundStatementsCheck
Checks that bodies of if statements and loops (for, range-for, do-while, and while) are inside braces...
Definition: BracesAroundStatementsCheck.h:43
clang::tidy::google::ExplicitConstructorCheck
Checks that all single-argument constructors are explicit.
Definition: ExplicitConstructorCheck.h:24
AvoidNSObjectNewCheck.h
clang::tidy::ClangTidyOptions::CheckOptions
OptionMap CheckOptions
Key-value mapping used to store check-specific options.
Definition: ClangTidyOptions.h:118
clang::tidy::google::objc::FunctionNamingCheck
Finds function names that do not conform to the recommendations of the Google Objective-C Style Guide...
Definition: FunctionNamingCheck.h:29
clang::tidy::ClangTidyOptions
Contains options for clang-tidy.
Definition: ClangTidyOptions.h:50
FunctionNamingCheck.h
clang::ast_matchers
Definition: AbseilMatcher.h:14
clang::tidy::ClangTidyCheckFactories
A collection of ClangTidyCheckFactory instances.
Definition: ClangTidyModule.h:28
ExplicitMakePairCheck.h
TodoCommentCheck.h
clang::tidy::google::objc::GlobalVariableDeclarationCheck
The check for Objective-C global variables and constants naming convention.
Definition: GlobalVariableDeclarationCheck.h:25
X
int X
Definition: LSPBinderTests.cpp:25
clang::tidy::google::build::UsingNamespaceDirectiveCheck
Finds using namespace directives.
Definition: UsingNamespaceDirectiveCheck.h:37
clang::tidy::google::UpgradeGoogletestCaseCheck
Finds uses of deprecated Googletest APIs with names containing "case" and replaces them with equivale...
Definition: UpgradeGoogletestCaseCheck.h:23
AvoidCStyleCastsCheck.h
clang::tidy::google::DefaultArgumentsCheck
Checks that default parameters are not given for virtual methods.
Definition: DefaultArgumentsCheck.h:24
clang::tidy::google::build::ExplicitMakePairCheck
Check that make_pair's template arguments are deduced.
Definition: ExplicitMakePairCheck.h:28
clang::tidy::google::build::UnnamedNamespaceInHeaderCheck
Finds anonymous namespaces in headers.
Definition: UnnamedNamespaceInHeaderCheck.h:36
clang::tidy::google::readability::AvoidUnderscoreInGoogletestNameCheck
For the user-facing documentation see: http://clang.llvm.org/extra/clang-tidy/checks/google-readabili...
Definition: AvoidUnderscoreInGoogletestNameCheck.h:24
GlobalVariableDeclarationCheck.h
clang::tidy::google::GoogleModule
Definition: GoogleTidyModule.cpp:38
IntegerTypesCheck.h
OverloadedUnaryAndCheck.h
clang::tidy::readability::FunctionSizeCheck
Checks for large functions based on various metrics.
Definition: FunctionSizeCheck.h:37
GlobalNamesInHeadersCheck.h
clang::tidy::google::runtime::IntegerTypesCheck
Finds uses of short, long and long long and suggest replacing them with u?intXX(_t)?...
Definition: IntegerTypesCheck.h:31
clang::tidy::google::readability::AvoidCStyleCastsCheck
Finds usages of C-style casts.
Definition: AvoidCStyleCastsCheck.h:31
clang::tidy::google::objc::AvoidThrowingObjCExceptionCheck
The check is to find usage of.
Definition: AvoidThrowingObjCExceptionCheck.h:25
clang::tidy::google::objc::AvoidNSObjectNewCheck
This check finds Objective-C code that uses +new to create object instances, or overrides +new in cla...
Definition: AvoidNSObjectNewCheck.h:25
UpgradeGoogletestCaseCheck.h
clang::tidy::google::GoogleModule::addCheckFactories
void addCheckFactories(ClangTidyCheckFactories &CheckFactories) override
Implement this function in order to register all CheckFactories belonging to this module.
Definition: GoogleTidyModule.cpp:40
clang
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
Definition: ApplyReplacements.h:27
AvoidUnderscoreInGoogletestNameCheck.h
DefaultArgumentsCheck.h
clang::tidy::google::runtime::OverloadedUnaryAndCheck
Finds overloads of unary operator &.
Definition: OverloadedUnaryAndCheck.h:27
clang::tidy::ClangTidyModule
A clang-tidy module groups a number of ClangTidyChecks and gives them a prefixed name.
Definition: ClangTidyModule.h:81
UnnamedNamespaceInHeaderCheck.h
clang::tidy::google::GoogleModule::getModuleOptions
ClangTidyOptions getModuleOptions() override
Gets default options for checks defined in this module.
Definition: GoogleTidyModule.cpp:84
AvoidThrowingObjCExceptionCheck.h
clang::tidy::ClangTidyCheckFactories::registerCheck
void registerCheck(llvm::StringRef CheckName)
Registers the CheckType with the name Name.
Definition: ClangTidyModule.h:59
clang::tidy::GoogleModuleAnchorSource
volatile int GoogleModuleAnchorSource
Definition: GoogleTidyModule.cpp:104