[PATCH] D42143: add ID as a special acronym to objc property declaration check for property names like bundleID.allow using acronyms as suffix.
Yan Zhang via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Tue Jan 16 16:08:00 PST 2018
Wizard created this revision.
Herald added subscribers: cfe-commits, klimek.
Wizard retitled this revision from "add ID as a special acronym to objc property declaration check for property names like bundleID.
allow using acronyms as suffix." to "add ID as a special acronym to objc property declaration check for property names like bundleID.allow using acronyms as suffix.".
Wizard added reviewers: benhamilton, hokein.
Repository:
rCTE Clang Tools Extra
https://reviews.llvm.org/D42143
Files:
clang-tidy/objc/PropertyDeclarationCheck.cpp
test/clang-tidy/objc-property-declaration.m
Index: test/clang-tidy/objc-property-declaration.m
===================================================================
--- test/clang-tidy/objc-property-declaration.m
+++ test/clang-tidy/objc-property-declaration.m
@@ -7,6 +7,7 @@
// CHECK-FIXES: @property(assign, nonatomic) int notCamelCase;
@property(assign, nonatomic) int camelCase;
@property(strong, nonatomic) NSString *URLString;
+ at 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
Index: clang-tidy/objc/PropertyDeclarationCheck.cpp
===================================================================
--- clang-tidy/objc/PropertyDeclarationCheck.cpp
+++ clang-tidy/objc/PropertyDeclarationCheck.cpp
@@ -41,7 +41,8 @@
"RGB;"
"CMYK;"
"MIDI;"
- "FTP";
+ "FTP;"
+ "ID";
/// For now we will only fix 'CamelCase' property to
/// 'camelCase'. For other cases the users need to
@@ -58,24 +59,26 @@
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
// fooBar
// url
// 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D42143.130056.patch
Type: text/x-patch
Size: 2435 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180117/092449a0/attachment.bin>
More information about the cfe-commits
mailing list