clang-tools 22.0.0git
|
Checks for identifiers naming style mismatch. More...
#include <IdentifierNamingCheck.h>
Classes | |
struct | FileStyle |
struct | HungarianNotation |
struct | HungarianNotationOption |
struct | NamingStyle |
Public Types | |
enum | CaseType { CT_AnyCase = 0 , CT_LowerCase , CT_CamelBack , CT_UpperCase , CT_CamelCase , CT_CamelSnakeCase , CT_CamelSnakeBack , CT_LeadingUpperSnakeCase } |
enum | HungarianPrefixType { HPT_Off = 0 , HPT_On , HPT_LowerCase , HPT_CamelCase } |
Public Types inherited from clang::tidy::RenamerClangTidyCheck | |
enum class | ShouldFixStatus { ShouldFix , ConflictsWithKeyword , ConflictsWithMacroDefinition , FixInvalidIdentifier , IgnoreFailureThreshold , InsideMacro } |
This enum will be used in select of the diagnostic message. More... | |
using | NamingCheckId = std::pair<SourceLocation, StringRef> |
using | NamingCheckFailureMap |
Public Member Functions | |
IdentifierNamingCheck (StringRef Name, ClangTidyContext *Context) | |
~IdentifierNamingCheck () | |
void | storeOptions (ClangTidyOptions::OptionMap &Opts) override |
IdentifierNamingCheck::FileStyle | getFileStyleFromOptions (const ClangTidyCheck::OptionsView &Options) const |
bool | matchesStyle (StringRef Type, StringRef Name, const IdentifierNamingCheck::NamingStyle &Style, const IdentifierNamingCheck::HungarianNotationOption &HNOption, const NamedDecl *Decl) const |
std::string | fixupWithCase (StringRef Type, StringRef Name, const Decl *D, const IdentifierNamingCheck::NamingStyle &Style, const IdentifierNamingCheck::HungarianNotationOption &HNOption, IdentifierNamingCheck::CaseType Case) const |
std::string | fixupWithStyle (StringRef Type, StringRef Name, const IdentifierNamingCheck::NamingStyle &Style, const IdentifierNamingCheck::HungarianNotationOption &HNOption, const Decl *D) const |
StyleKind | findStyleKind (const NamedDecl *D, ArrayRef< std::optional< IdentifierNamingCheck::NamingStyle > > NamingStyles, bool IgnoreMainLikeFunctions, bool CheckAnonFieldInParentScope) const |
std::optional< RenamerClangTidyCheck::FailureInfo > | getFailureInfo (StringRef Type, StringRef Name, const NamedDecl *ND, SourceLocation Location, ArrayRef< std::optional< IdentifierNamingCheck::NamingStyle > > NamingStyles, const IdentifierNamingCheck::HungarianNotationOption &HNOption, StyleKind SK, const SourceManager &SM, bool IgnoreFailedSplit) const |
bool | isParamInMainLikeFunction (const ParmVarDecl &ParmDecl, bool IncludeMainLike) const |
Public Member Functions inherited from clang::tidy::RenamerClangTidyCheck | |
RenamerClangTidyCheck (StringRef CheckName, ClangTidyContext *Context) | |
~RenamerClangTidyCheck () | |
void | registerMatchers (ast_matchers::MatchFinder *Finder) final |
Derived classes should not implement any matching logic themselves; this class will do the matching and call the derived class' getDeclFailureInfo() and getMacroFailureInfo() for determining whether a given identifier passes or fails the check. | |
void | check (const ast_matchers::MatchFinder::MatchResult &Result) final |
void | registerPPCallbacks (const SourceManager &SM, Preprocessor *PP, Preprocessor *ModuleExpanderPP) final |
void | onEndOfTranslationUnit () final |
void | storeOptions (ClangTidyOptions::OptionMap &Opts) override |
Derived classes that override this function should call this method from the overridden method. | |
void | checkMacro (const Token &MacroNameTok, const MacroInfo *MI, const SourceManager &SourceMgr) |
Check Macros for style violations. | |
void | expandMacro (const Token &MacroNameTok, const MacroInfo *MI, const SourceManager &SourceMgr) |
Add a usage of a macro if it already has a violation. | |
void | addUsage (const NamedDecl *Decl, SourceRange Range, const SourceManager &SourceMgr) |
Checks for identifiers naming style mismatch.
This check will try to enforce coding guidelines on the identifiers naming. It supports lower_case, UPPER_CASE, camelBack and CamelCase casing and tries to convert from one to another if a mismatch is detected.
It also supports a fixed prefix and suffix that will be prepended or appended to the identifiers, regardless of the casing.
Many configuration options are available, in order to be able to create different rules for different kind of identifier. In general, the rules are falling back to a more generic rule if the specific case is not configured.
Definition at line 33 of file IdentifierNamingCheck.h.
Enumerator | |
---|---|
CT_AnyCase | |
CT_LowerCase | |
CT_CamelBack | |
CT_UpperCase | |
CT_CamelCase | |
CT_CamelSnakeCase | |
CT_CamelSnakeBack | |
CT_LeadingUpperSnakeCase |
Definition at line 40 of file IdentifierNamingCheck.h.
Enumerator | |
---|---|
HPT_Off | |
HPT_On | |
HPT_LowerCase | |
HPT_CamelCase |
Definition at line 51 of file IdentifierNamingCheck.h.
clang::tidy::readability::IdentifierNamingCheck::IdentifierNamingCheck | ( | StringRef | Name, |
ClangTidyContext * | Context ) |
Definition at line 401 of file IdentifierNamingCheck.cpp.
References getFileStyleFromOptions(), IdentifierNamingCheck(), and clang::tidy::RenamerClangTidyCheck::RenamerClangTidyCheck().
Referenced by IdentifierNamingCheck().
|
default |
StyleKind clang::tidy::readability::IdentifierNamingCheck::findStyleKind | ( | const NamedDecl * | D, |
ArrayRef< std::optional< IdentifierNamingCheck::NamingStyle > > | NamingStyles, | ||
bool | IgnoreMainLikeFunctions, | ||
bool | CheckAnonFieldInParentScope ) const |
Definition at line 1118 of file IdentifierNamingCheck.cpp.
References isParamInMainLikeFunction(), and clang::tidy::readability::SK_Invalid.
std::string clang::tidy::readability::IdentifierNamingCheck::fixupWithCase | ( | StringRef | Type, |
StringRef | Name, | ||
const Decl * | D, | ||
const IdentifierNamingCheck::NamingStyle & | Style, | ||
const IdentifierNamingCheck::HungarianNotationOption & | HNOption, | ||
IdentifierNamingCheck::CaseType | Case ) const |
Definition at line 908 of file IdentifierNamingCheck.cpp.
References CT_AnyCase, CT_CamelBack, CT_CamelCase, CT_CamelSnakeBack, CT_CamelSnakeCase, CT_LeadingUpperSnakeCase, CT_LowerCase, CT_UpperCase, HPT_Off, and clang::tidy::readability::IdentifierNamingCheck::HungarianNotation::removeDuplicatedPrefix().
Referenced by fixupWithStyle(), and getFailureInfo().
std::string clang::tidy::readability::IdentifierNamingCheck::fixupWithStyle | ( | StringRef | Type, |
StringRef | Name, | ||
const IdentifierNamingCheck::NamingStyle & | Style, | ||
const IdentifierNamingCheck::HungarianNotationOption & | HNOption, | ||
const Decl * | D ) const |
Definition at line 1088 of file IdentifierNamingCheck.cpp.
References CT_AnyCase, fixupWithCase(), clang::tidy::readability::IdentifierNamingCheck::HungarianNotation::getPrefix(), HPT_CamelCase, HPT_LowerCase, and HPT_Off.
Referenced by getFailureInfo().
std::optional< RenamerClangTidyCheck::FailureInfo > clang::tidy::readability::IdentifierNamingCheck::getFailureInfo | ( | StringRef | Type, |
StringRef | Name, | ||
const NamedDecl * | ND, | ||
SourceLocation | Location, | ||
ArrayRef< std::optional< IdentifierNamingCheck::NamingStyle > > | NamingStyles, | ||
const IdentifierNamingCheck::HungarianNotationOption & | HNOption, | ||
StyleKind | SK, | ||
const SourceManager & | SM, | ||
bool | IgnoreFailedSplit ) const |
Definition at line 1338 of file IdentifierNamingCheck.cpp.
References CT_LowerCase, fixupWithCase(), fixupWithStyle(), matchesStyle(), clang::tidy::readability::SK_Invalid, and clang::tidy::readability::StyleNames.
IdentifierNamingCheck::FileStyle clang::tidy::readability::IdentifierNamingCheck::getFileStyleFromOptions | ( | const ClangTidyCheck::OptionsView & | Options | ) | const |
Definition at line 249 of file IdentifierNamingCheck.cpp.
References clang::tidy::readability::IdentifierNamingCheck::HungarianNotation::checkOptionValid(), getFileStyleFromOptions(), HPT_Off, clang::tidy::readability::IdentifierNamingCheck::HungarianNotation::loadDefaultConfig(), clang::tidy::readability::IdentifierNamingCheck::HungarianNotation::loadFileConfig(), clang::tidy::readability::SK_Count, and clang::tidy::readability::StyleNames.
Referenced by getFileStyleFromOptions(), and IdentifierNamingCheck().
bool clang::tidy::readability::IdentifierNamingCheck::isParamInMainLikeFunction | ( | const ParmVarDecl & | ParmDecl, |
bool | IncludeMainLike ) const |
Definition at line 1024 of file IdentifierNamingCheck.cpp.
Referenced by findStyleKind().
bool clang::tidy::readability::IdentifierNamingCheck::matchesStyle | ( | StringRef | Type, |
StringRef | Name, | ||
const IdentifierNamingCheck::NamingStyle & | Style, | ||
const IdentifierNamingCheck::HungarianNotationOption & | HNOption, | ||
const NamedDecl * | Decl ) const |
Definition at line 865 of file IdentifierNamingCheck.cpp.
References clang::tidy::readability::IdentifierNamingCheck::HungarianNotation::getPrefix(), HPT_LowerCase, and HPT_Off.
Referenced by getFailureInfo().
|
override |
Definition at line 830 of file IdentifierNamingCheck.cpp.
References clang::tidy::readability::SK_Count, clang::tidy::RenamerClangTidyCheck::storeOptions(), and clang::tidy::readability::StyleNames.