Author: wizard Date: Tue Jan 16 16:19:35 2018 New Revision: 322602 URL: http://llvm.org/viewvc/llvm-project?rev=322602&view=rev Log: 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 Modified: clang-tools-extra/trunk/clang-tidy/objc/PropertyDeclarationCheck.cpp clang-tools-extra/trunk/test/clang-tidy/objc-property-declaration.m Modified: clang-tools-extra/trunk/clang-tidy/objc/PropertyDeclarationCheck.cpp URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/objc/PropertyDeclarationCheck.cpp?rev=322602&r1=322601&r2=322602&view=diff ============================================================================== --- clang-tools-extra/trunk/clang-tidy/objc/PropertyDeclarationCheck.cpp (original) +++ clang-tools-extra/trunk/clang-tidy/objc/PropertyDeclarationCheck.cpp Tue Jan 16 16:19:35 2018 @@ -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 ObjCPr 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 // 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 Modified: clang-tools-extra/trunk/test/clang-tidy/objc-property-declaration.m URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/test/clang-tidy/objc-property-declaration.m?rev=322602&r1=322601&r2=322602&view=diff ============================================================================== --- clang-tools-extra/trunk/test/clang-tidy/objc-property-declaration.m (original) +++ clang-tools-extra/trunk/test/clang-tidy/objc-property-declaration.m Tue Jan 16 16:19:35 2018 @@ -7,6 +7,7 @@ // CHECK-FIXES: @property(assign, nonatomic) int notCamelCase; @property(assign, nonatomic) int camelCase; @property(strong, nonatomic) NSString *URLString; +@property(strong, nonatomic) NSString *bundleID; @property(strong, nonatomic) NSString *URL_string; // CHECK-MESSAGES: :[[@LINE-1]]:40: warning: property name 'URL_string' should use lowerCamelCase style, according to the Apple Coding Guidelines [objc-property-declaration] @end _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits