clang-tools
11.0.0
clang-tools-extra
clang-tidy
readability
IdentifierNamingCheck.h
Go to the documentation of this file.
1
//===--- IdentifierNamingCheck.h - clang-tidy -------------------*- C++ -*-===//
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_CLANG_TIDY_READABILITY_IDENTIFIERNAMINGCHECK_H
10
#define LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_READABILITY_IDENTIFIERNAMINGCHECK_H
11
12
#include "../utils/RenamerClangTidyCheck.h"
13
namespace
clang
{
14
15
class
MacroInfo;
16
17
namespace
tidy {
18
namespace
readability {
19
20
/// Checks for identifiers naming style mismatch.
21
///
22
/// This check will try to enforce coding guidelines on the identifiers naming.
23
/// It supports `lower_case`, `UPPER_CASE`, `camelBack` and `CamelCase` casing
24
/// and tries to convert from one to another if a mismatch is detected.
25
///
26
/// It also supports a fixed prefix and suffix that will be prepended or
27
/// appended to the identifiers, regardless of the casing.
28
///
29
/// Many configuration options are available, in order to be able to create
30
/// different rules for different kind of identifier. In general, the
31
/// rules are falling back to a more generic rule if the specific case is not
32
/// configured.
33
class
IdentifierNamingCheck
final :
public
RenamerClangTidyCheck
{
34
public
:
35
IdentifierNamingCheck
(StringRef
Name
,
ClangTidyContext
*Context);
36
~IdentifierNamingCheck
();
37
38
void
storeOptions
(
ClangTidyOptions::OptionMap
&Opts)
override
;
39
40
enum
CaseType
{
41
CT_AnyCase
= 0,
42
CT_LowerCase
,
43
CT_CamelBack
,
44
CT_UpperCase
,
45
CT_CamelCase
,
46
CT_CamelSnakeCase
,
47
CT_CamelSnakeBack
48
};
49
50
struct
NamingStyle
{
51
NamingStyle
() =
default
;
52
53
NamingStyle
(llvm::Optional<CaseType>
Case
,
const
std::string &
Prefix
,
54
const
std::string &
Suffix
)
55
:
Case
(
Case
),
Prefix
(
Prefix
),
Suffix
(
Suffix
) {}
56
57
llvm::Optional<CaseType>
Case
;
58
std::string
Prefix
;
59
std::string
Suffix
;
60
};
61
62
private
:
63
llvm::Optional<FailureInfo>
64
GetDeclFailureInfo(
const
NamedDecl *
Decl
,
65
const
SourceManager &SM)
const override
;
66
llvm::Optional<FailureInfo>
67
GetMacroFailureInfo(
const
Token &MacroNameTok,
68
const
SourceManager &SM)
const override
;
69
DiagInfo
GetDiagInfo(
const
NamingCheckId
&ID,
70
const
NamingCheckFailure
&Failure)
const override
;
71
72
std::vector<llvm::Optional<NamingStyle>> NamingStyles;
73
const
bool
IgnoreFailedSplit;
74
const
bool
IgnoreMainLikeFunctions;
75
};
76
77
}
// namespace readability
78
template
<>
79
struct
OptionEnumMapping
<readability::IdentifierNamingCheck::CaseType> {
80
static
llvm::ArrayRef<
81
std::pair<readability::IdentifierNamingCheck::CaseType, StringRef>>
82
getEnumMapping
();
83
};
84
}
// namespace tidy
85
}
// namespace clang
86
87
#endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_TIDY_READABILITY_IDENTIFIERNAMINGCHECK_H
clang::tidy::readability::IdentifierNamingCheck::CT_UpperCase
Definition:
IdentifierNamingCheck.h:44
clang::tidy::readability::IdentifierNamingCheck::CT_CamelSnakeBack
Definition:
IdentifierNamingCheck.h:47
clang::tidy::readability::IdentifierNamingCheck::NamingStyle::Prefix
std::string Prefix
Definition:
IdentifierNamingCheck.h:58
clang::tidy::readability::IdentifierNamingCheck::~IdentifierNamingCheck
~IdentifierNamingCheck()
clang::tidy::OptionEnumMapping
This class should be specialized by any enum type that needs to be converted to and from an llvm::Str...
Definition:
ClangTidyCheck.h:31
clang::tidy::readability::IdentifierNamingCheck::IdentifierNamingCheck
IdentifierNamingCheck(StringRef Name, ClangTidyContext *Context)
Definition:
IdentifierNamingCheck.cpp:122
clang::tidy::RenamerClangTidyCheck::NamingCheckFailure
Holds an identifier name check failure, tracking the kind of the identifier, its possible fixup and t...
Definition:
RenamerClangTidyCheck.h:80
clang::tidy::RenamerClangTidyCheck::DiagInfo
Represents customized diagnostic text and how arguments should be applied.
Definition:
RenamerClangTidyCheck.h:143
clang::tidy::readability::IdentifierNamingCheck::CT_AnyCase
Definition:
IdentifierNamingCheck.h:41
clang::tidy::readability::IdentifierNamingCheck::NamingStyle::NamingStyle
NamingStyle(llvm::Optional< CaseType > Case, const std::string &Prefix, const std::string &Suffix)
Definition:
IdentifierNamingCheck.h:53
clang::tidy::readability::IdentifierNamingCheck::NamingStyle::Suffix
std::string Suffix
Definition:
IdentifierNamingCheck.h:59
clang::tidy::readability::IdentifierNamingCheck::CaseType
CaseType
Definition:
IdentifierNamingCheck.h:40
Decl
const FunctionDecl * Decl
Definition:
AvoidBindCheck.cpp:100
clang::tidy::ClangTidyContext
Every ClangTidyCheck reports errors through a DiagnosticsEngine provided by this context.
Definition:
ClangTidyDiagnosticConsumer.h:76
Name
static constexpr llvm::StringLiteral Name
Definition:
UppercaseLiteralSuffixCheck.cpp:27
clang::tidy::readability::IdentifierNamingCheck::CT_CamelCase
Definition:
IdentifierNamingCheck.h:45
clang::tidy::readability::IdentifierNamingCheck::NamingStyle
Definition:
IdentifierNamingCheck.h:50
clang::tidy::readability::IdentifierNamingCheck::CT_CamelSnakeCase
Definition:
IdentifierNamingCheck.h:46
clang::tidy::RenamerClangTidyCheck
Base class for clang-tidy checks that want to flag declarations and/or macros for renaming based on c...
Definition:
RenamerClangTidyCheck.h:28
clang::tidy::OptionEnumMapping::getEnumMapping
static ArrayRef< std::pair< T, StringRef > > getEnumMapping()=delete
clang::tidy::RenamerClangTidyCheck::NamingCheckId
std::pair< SourceLocation, std::string > NamingCheckId
Definition:
RenamerClangTidyCheck.h:104
clang::tidy::readability::IdentifierNamingCheck::NamingStyle::Case
llvm::Optional< CaseType > Case
Definition:
IdentifierNamingCheck.h:57
clang::tidy::readability::IdentifierNamingCheck
Checks for identifiers naming style mismatch.
Definition:
IdentifierNamingCheck.h:33
clang::tidy::readability::IdentifierNamingCheck::CT_LowerCase
Definition:
IdentifierNamingCheck.h:42
clang
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
Definition:
ApplyReplacements.h:27
clang::tidy::readability::IdentifierNamingCheck::CT_CamelBack
Definition:
IdentifierNamingCheck.h:43
clang::tidy::readability::IdentifierNamingCheck::NamingStyle::NamingStyle
NamingStyle()=default
clang::tidy::readability::IdentifierNamingCheck::storeOptions
void storeOptions(ClangTidyOptions::OptionMap &Opts) override
Should store all options supported by this check with their current values or default values for opti...
Definition:
IdentifierNamingCheck.cpp:155
clang::tidy::ClangTidyOptions::OptionMap
std::map< std::string, ClangTidyValue > OptionMap
Definition:
ClangTidyOptions.h:111
Generated on Tue Jul 28 2020 16:14:02 for clang-tools by
1.8.16