18 : HeaderGuardCheck(Name, Context),
19 RawStringHeaderFileExtensions(
20 Options.getLocalOrGlobal(
"HeaderFileExtensions",
",h,hh,hpp,hxx")) {
22 HeaderFileExtensions,
',');
26 Options.
store(Opts,
"HeaderFileExtensions", RawStringHeaderFileExtensions);
35 std::string Guard = tooling::getAbsolutePath(Filename);
41 size_t PosInclude = Guard.rfind(
"include/");
42 if (PosInclude != StringRef::npos)
43 Guard = Guard.substr(PosInclude + std::strlen(
"include/"));
46 size_t PosToolsClang = Guard.rfind(
"tools/clang/");
47 if (PosToolsClang != StringRef::npos)
48 Guard = Guard.substr(PosToolsClang + std::strlen(
"tools/"));
51 size_t PosLLVM = Guard.rfind(
"llvm/");
52 if (PosLLVM != StringRef::npos)
53 Guard = Guard.substr(PosLLVM);
55 std::replace(Guard.begin(), Guard.end(),
'/',
'_');
56 std::replace(Guard.begin(), Guard.end(),
'.',
'_');
57 std::replace(Guard.begin(), Guard.end(),
'-',
'_');
60 if (StringRef(Guard).startswith(
"clang"))
61 Guard =
"LLVM_" + Guard;
63 return StringRef(Guard).upper();
bool parseHeaderFileExtensions(StringRef AllHeaderFileExtensions, HeaderFileExtensionsSet &HeaderFileExtensions, char delimiter)
Parses header file extensions from a semicolon-separated list.
std::string Filename
Filename as a string.
void store(ClangTidyOptions::OptionMap &Options, StringRef LocalName, StringRef Value) const
Stores an option with the check-local name LocalName with string value Value to Options.
std::map< std::string, std::string > OptionMap
ClangTidyContext & Context
Every ClangTidyCheck reports errors through a DiagnosticsEngine provided by this context.
bool isHeaderFileExtension(StringRef FileName, const HeaderFileExtensionsSet &HeaderFileExtensions)
Decides whether a file has a header file extension.