clang-tools  3.8.0
ClangTidyModule.cpp
Go to the documentation of this file.
1 //===--- tools/extra/clang-tidy/ClangTidyModule.cpp - Clang tidy tool -----===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 ///
10 /// \file Implements classes required to build clang-tidy modules.
11 ///
12 //===----------------------------------------------------------------------===//
13 
14 #include "ClangTidyModule.h"
15 
16 namespace clang {
17 namespace tidy {
18 
20  CheckFactory Factory) {
21  Factories[Name] = Factory;
22 }
23 
26  std::vector<std::unique_ptr<ClangTidyCheck>> &Checks) {
27  GlobList &Filter = Context->getChecksFilter();
28  for (const auto &Factory : Factories) {
29  if (Filter.contains(Factory.first))
30  Checks.emplace_back(Factory.second(Factory.first, Context));
31  }
32 }
33 
35  return ClangTidyOptions();
36 }
37 
38 } // namespace tidy
39 } // namespace clang
Read-only set of strings represented as a list of positive and negative globs.
StringHandle Name
std::vector< std::unique_ptr< ClangTidyCheck > > Checks
Definition: ClangTidy.cpp:189
void registerCheckFactory(StringRef Name, CheckFactory Factory)
Registers check Factory with name Name.
bool contains(StringRef S)
Returns true if the pattern matches S.
Contains options for clang-tidy.
virtual ClangTidyOptions getModuleOptions()
Gets default options for checks defined in this module.
void createChecks(ClangTidyContext *Context, std::vector< std::unique_ptr< ClangTidyCheck >> &Checks)
Create instances of all checks matching CheckRegexString and store them in Checks.
ClangTidyContext & Context
Definition: ClangTidy.cpp:93
Every ClangTidyCheck reports errors through a DiagnosticsEngine provided by this context.
std::function< ClangTidyCheck *(StringRef Name, ClangTidyContext *Context)> CheckFactory
GlobList & getChecksFilter()
Returns check filter for the CurrentFile.