clang-tools 20.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 = llvm::DenseMap< NamingCheckId, NamingCheckFailure > |
Public Member Functions | |
IdentifierNamingCheck (StringRef Name, ClangTidyContext *Context) | |
~IdentifierNamingCheck () | |
void | storeOptions (ClangTidyOptions::OptionMap &Opts) override |
Should store all options supported by this check with their current values or default values for options that haven't been overridden. | |
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 |
ClangTidyChecks that register ASTMatchers should do the actual work in here. | |
void | registerPPCallbacks (const SourceManager &SM, Preprocessor *PP, Preprocessor *ModuleExpanderPP) final |
Override this to register PPCallbacks in the preprocessor. | |
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) |
Public Member Functions inherited from clang::tidy::ClangTidyCheck | |
ClangTidyCheck (StringRef CheckName, ClangTidyContext *Context) | |
Initializes the check with CheckName and Context . | |
virtual bool | isLanguageVersionSupported (const LangOptions &LangOpts) const |
Override this to disable registering matchers and PP callbacks if an invalid language version is being used. | |
virtual void | registerPPCallbacks (const SourceManager &SM, Preprocessor *PP, Preprocessor *ModuleExpanderPP) |
Override this to register PPCallbacks in the preprocessor. | |
virtual void | registerMatchers (ast_matchers::MatchFinder *Finder) |
Override this to register AST matchers with Finder . | |
virtual void | check (const ast_matchers::MatchFinder::MatchResult &Result) |
ClangTidyChecks that register ASTMatchers should do the actual work in here. | |
DiagnosticBuilder | diag (SourceLocation Loc, StringRef Description, DiagnosticIDs::Level Level=DiagnosticIDs::Warning) |
Add a diagnostic with the check's name. | |
DiagnosticBuilder | diag (StringRef Description, DiagnosticIDs::Level Level=DiagnosticIDs::Warning) |
Add a diagnostic with the check's name. | |
DiagnosticBuilder | configurationDiag (StringRef Description, DiagnosticIDs::Level Level=DiagnosticIDs::Warning) const |
Adds a diagnostic to report errors in the check's configuration. | |
virtual void | storeOptions (ClangTidyOptions::OptionMap &Options) |
Should store all options supported by this check with their current values or default values for options that haven't been overridden. | |
Additional Inherited Members | |
virtual std::optional< FailureInfo > | getDeclFailureInfo (const NamedDecl *Decl, const SourceManager &SM) const =0 |
Overridden by derived classes, returns information about if and how a Decl failed the check. | |
virtual std::optional< FailureInfo > | getMacroFailureInfo (const Token &MacroNameTok, const SourceManager &SM) const =0 |
Overridden by derived classes, returns information about if and how a macro failed the check. | |
virtual DiagInfo | getDiagInfo (const NamingCheckId &ID, const NamingCheckFailure &Failure) const =0 |
Overridden by derived classes, returns a description of the diagnostic that should be emitted for the given failure. | |
Protected Member Functions inherited from clang::tidy::ClangTidyCheck | |
StringRef | getCurrentMainFile () const |
Returns the main file name of the current translation unit. | |
const LangOptions & | getLangOpts () const |
Returns the language options from the context. | |
bool | areDiagsSelfContained () const |
Returns true when the check is run in a use case when only 1 fix will be applied at a time. | |
StringRef | getID () const override |
Protected Attributes inherited from clang::tidy::ClangTidyCheck | |
OptionsView | Options |
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 404 of file IdentifierNamingCheck.cpp.
References getFileStyleFromOptions(), and clang::tidy::ClangTidyCheck::Options.
|
default |
StyleKind clang::tidy::readability::IdentifierNamingCheck::findStyleKind | ( | const NamedDecl * | D, |
ArrayRef< std::optional< IdentifierNamingCheck::NamingStyle > > | NamingStyles, | ||
bool | IgnoreMainLikeFunctions, | ||
bool | CheckAnonFieldInParentScope | ||
) | const |
Definition at line 1122 of file IdentifierNamingCheck.cpp.
References Decl, isParamInMainLikeFunction(), clang::tidy::readability::SK_Invalid, and Type.
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 912 of file IdentifierNamingCheck.cpp.
References CT_AnyCase, CT_CamelBack, CT_CamelCase, CT_CamelSnakeBack, CT_CamelSnakeCase, CT_LeadingUpperSnakeCase, CT_LowerCase, CT_UpperCase, HPT_Off, Name, clang::tidy::readability::IdentifierNamingCheck::HungarianNotation::removeDuplicatedPrefix(), and Word.
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 1092 of file IdentifierNamingCheck.cpp.
References CT_AnyCase, fixupWithCase(), clang::tidy::readability::IdentifierNamingCheck::HungarianNotation::getPrefix(), HPT_CamelCase, HPT_LowerCase, HPT_Off, Name, and Type.
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 1339 of file IdentifierNamingCheck.cpp.
References CT_LowerCase, fixupWithCase(), fixupWithStyle(), matchesStyle(), Name, clang::tidy::readability::SK_Invalid, clang::tidy::readability::StyleNames, and Type.
IdentifierNamingCheck::FileStyle clang::tidy::readability::IdentifierNamingCheck::getFileStyleFromOptions | ( | const ClangTidyCheck::OptionsView & | Options | ) | const |
Definition at line 251 of file IdentifierNamingCheck.cpp.
References clang::tidy::readability::IdentifierNamingCheck::HungarianNotation::checkOptionValid(), clang::tidy::ClangTidyCheck::OptionsView::get(), clang::tidy::readability::IdentifierNamingCheck::HungarianNotation::loadDefaultConfig(), clang::tidy::readability::IdentifierNamingCheck::HungarianNotation::loadFileConfig(), clang::tidy::readability::SK_Count, and clang::tidy::readability::StyleNames.
Referenced by IdentifierNamingCheck().
bool clang::tidy::readability::IdentifierNamingCheck::isParamInMainLikeFunction | ( | const ParmVarDecl & | ParmDecl, |
bool | IncludeMainLike | ||
) | const |
Definition at line 1028 of file IdentifierNamingCheck.cpp.
References Type.
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 869 of file IdentifierNamingCheck.cpp.
References Decl, clang::tidy::readability::IdentifierNamingCheck::HungarianNotation::getPrefix(), HPT_LowerCase, HPT_Off, and Name.
Referenced by getFailureInfo().
|
overridevirtual |
Should store all options supported by this check with their current values or default values for options that haven't been overridden.
The check should use Options.store()
to store each option it supports whether it has the default value or it has been overridden.
Reimplemented from clang::tidy::ClangTidyCheck.
Definition at line 834 of file IdentifierNamingCheck.cpp.
References clang::tidy::readability::IdentifierNamingCheck::FileStyle::getStyles(), clang::tidy::readability::IdentifierNamingCheck::FileStyle::isCheckingAnonFieldInParentScope(), clang::tidy::readability::IdentifierNamingCheck::FileStyle::isIgnoringMainLikeFunction(), clang::tidy::ClangTidyCheck::Options, clang::tidy::readability::SK_Count, clang::tidy::ClangTidyCheck::OptionsView::store(), clang::tidy::RenamerClangTidyCheck::storeOptions(), clang::tidy::readability::StyleNames, and Suffix.