Implemented clang-tidy-check-specific options.

Summary:
Each check can implement readOptions and storeOptions methods to read
and store custom options. Each check's options are stored in a local namespace
to avoid name collisions and provide some sort of context to the user.

Reviewers: bkramer, klimek

Reviewed By: klimek

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D5296

llvm-svn: 217661
This commit is contained in:
Alexander Kornienko
2014-09-12 08:53:36 +00:00
parent 313f5e2f29
commit 6e0cbc8947
35 changed files with 263 additions and 58 deletions

View File

@@ -16,19 +16,18 @@
namespace clang {
namespace tidy {
void ClangTidyCheckFactories::registerCheckFactory(
StringRef Name, std::function<ClangTidyCheck *()> Factory) {
void ClangTidyCheckFactories::registerCheckFactory(StringRef Name,
CheckFactory Factory) {
Factories[Name] = Factory;
}
void ClangTidyCheckFactories::createChecks(
GlobList &Filter, std::vector<std::unique_ptr<ClangTidyCheck>> &Checks) {
ClangTidyContext *Context,
std::vector<std::unique_ptr<ClangTidyCheck>> &Checks) {
GlobList &Filter = Context->getChecksFilter();
for (const auto &Factory : Factories) {
if (Filter.contains(Factory.first)) {
ClangTidyCheck *Check = Factory.second();
Check->setName(Factory.first);
Checks.emplace_back(Check);
}
if (Filter.contains(Factory.first))
Checks.emplace_back(Factory.second(Factory.first, Context));
}
}