diff options
author | Yan Zhang <ynzhang@google.com> | 2018-01-17 00:19:35 +0000 |
---|---|---|
committer | Yan Zhang <ynzhang@google.com> | 2018-01-17 00:19:35 +0000 |
commit | 8c298d2ff2409c7a552b8d5d012c03b85cb738ce (patch) | |
tree | b405d34eb337d593ac2f028edc4b644d8ec3a105 /clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp | |
parent | c07e0bd5336d4b48b9c5caf79c887e145f279b0c (diff) | |
download | bcm5719-llvm-8c298d2ff2409c7a552b8d5d012c03b85cb738ce.tar.gz bcm5719-llvm-8c298d2ff2409c7a552b8d5d012c03b85cb738ce.zip |
add ID as a special acronym to objc property declaration check for property names like bundleID.allow using acronyms as suffix.
Reviewers: benhamilton, hokein
Reviewed By: benhamilton
Subscribers: klimek, cfe-commits
Differential Revision: https://reviews.llvm.org/D42143
llvm-svn: 322602
Diffstat (limited to 'clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp')
-rw-r--r-- | clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp b/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp index e47b2411b05..4ca03bf3030 100644 --- a/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp +++ b/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp @@ -41,7 +41,8 @@ constexpr char DefaultSpecialAcronyms[] = "RGB;" "CMYK;" "MIDI;" - "FTP"; + "FTP;" + "ID"; /// For now we will only fix 'CamelCase' property to /// 'camelCase'. For other cases the users need to @@ -58,13 +59,13 @@ FixItHint generateFixItHint(const ObjCPropertyDecl *Decl) { return FixItHint(); } -std::string validPropertyNameRegex(const std::vector<std::string> &Prefixes) { - std::vector<std::string> EscapedPrefixes; - EscapedPrefixes.reserve(Prefixes.size()); +std::string validPropertyNameRegex(const std::vector<std::string> &Acronyms) { + std::vector<std::string> EscapedAcronyms; + EscapedAcronyms.reserve(Acronyms.size()); // In case someone defines a custom prefix which includes a regex // special character, escape all the prefixes. - std::transform(Prefixes.begin(), Prefixes.end(), - std::back_inserter(EscapedPrefixes), [](const std::string& s) { + std::transform(Acronyms.begin(), Acronyms.end(), + std::back_inserter(EscapedAcronyms), [](const std::string& s) { return llvm::Regex::escape(s); }); // Allow any of these names: // foo @@ -73,9 +74,11 @@ std::string validPropertyNameRegex(const std::vector<std::string> &Prefixes) { // urlString // URL // URLString + // bundleID return std::string("::((") + - llvm::join(EscapedPrefixes.begin(), EscapedPrefixes.end(), "|") + - ")[A-Z]?)?[a-z]+[a-z0-9]*([A-Z][a-z0-9]+)*$"; + llvm::join(EscapedAcronyms.begin(), EscapedAcronyms.end(), "|") + + ")[A-Z]?)?[a-z]+[a-z0-9]*([A-Z][a-z0-9]+)*" + "(" + + llvm::join(EscapedAcronyms.begin(), EscapedAcronyms.end(), "|") + ")?$"; } } // namespace |