summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBen Hamilton <benhamilton@google.com>2018-01-18 20:51:24 +0000
committerBen Hamilton <benhamilton@google.com>2018-01-18 20:51:24 +0000
commit55c3a321a8541016bd8a4305dbed6bbed49c0d95 (patch)
treef67773361649a40f15e15a775a57ea7be6d0a30b
parent719c1f7405d6c67e69e6a2793334d4fd36402897 (diff)
downloadbcm5719-llvm-55c3a321a8541016bd8a4305dbed6bbed49c0d95.tar.gz
bcm5719-llvm-55c3a321a8541016bd8a4305dbed6bbed49c0d95.zip
[clang-tidy objc-property-declaration] Expand list of ObjC acronyms
Summary: We were missing some pretty common acronyms in the camelCase property name check objc-property-declaration. This expands the list and sorts it lexicographically, so we can avoid duplicates. Test Plan: make -j12 check-clang-tools Reviewers: Wizard, hokein, klimek Reviewed By: Wizard Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D42253 llvm-svn: 322886
-rw-r--r--clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp62
-rw-r--r--clang-tools-extra/docs/clang-tidy/checks/objc-property-declaration.rst10
-rw-r--r--clang-tools-extra/test/clang-tidy/objc-property-declaration.m4
3 files changed, 59 insertions, 17 deletions
diff --git a/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp b/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp
index 4ca03bf3030..0bb2d4833d5 100644
--- a/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp
+++ b/clang-tools-extra/clang-tidy/objc/PropertyDeclarationCheck.cpp
@@ -24,25 +24,63 @@ namespace objc {
namespace {
/// The acronyms are from
/// https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/APIAbbreviations.html#//apple_ref/doc/uid/20001285-BCIHCGAE
+///
+/// Keep this list sorted.
constexpr char DefaultSpecialAcronyms[] =
+ "ACL;"
+ "API;"
+ "ARGB;"
"ASCII;"
- "PDF;"
- "XML;"
+ "BGRA;"
+ "CMYK;"
+ "DNS;"
+ "FPS;"
+ "FTP;"
+ "GIF;"
+ "GPS;"
+ "HD;"
+ "HDR;"
"HTML;"
- "URL;"
- "RTF;"
"HTTP;"
- "TIFF;"
+ "HTTPS;"
+ "HUD;"
+ "ID;"
"JPG;"
- "PNG;"
- "GIF;"
+ "JS;"
+ "LAN;"
"LZW;"
- "ROM;"
- "RGB;"
- "CMYK;"
+ "MDNS;"
"MIDI;"
- "FTP;"
- "ID";
+ "OS;"
+ "PDF;"
+ "PIN;"
+ "PNG;"
+ "POI;"
+ "PSTN;"
+ "PTR;"
+ "QA;"
+ "QOS;"
+ "RGB;"
+ "RGBA;"
+ "RGBX;"
+ "ROM;"
+ "RPC;"
+ "RTF;"
+ "RTL;"
+ "SDK;"
+ "SSO;"
+ "TCP;"
+ "TIFF;"
+ "TTS;"
+ "UI;"
+ "URI;"
+ "URL;"
+ "VC;"
+ "VOIP;"
+ "VPN;"
+ "VR;"
+ "WAN;"
+ "XML";
/// For now we will only fix 'CamelCase' property to
/// 'camelCase'. For other cases the users need to
diff --git a/clang-tools-extra/docs/clang-tidy/checks/objc-property-declaration.rst b/clang-tools-extra/docs/clang-tidy/checks/objc-property-declaration.rst
index 77328317091..534ebfe7893 100644
--- a/clang-tools-extra/docs/clang-tidy/checks/objc-property-declaration.rst
+++ b/clang-tools-extra/docs/clang-tidy/checks/objc-property-declaration.rst
@@ -23,8 +23,8 @@ The check will only fix 'CamelCase' to 'camelCase'. In some other cases we will
only provide warning messages since the property name could be complicated.
Users will need to come up with a proper name by their own.
-This check also accepts special acronyms as prefix. Such prefix will suppress
-the check of Lower Camel Case according to the guide:
+This check also accepts special acronyms as prefixes or suffixes. Such prefixes or suffixes
+will suppress the Lower Camel Case check according to the guide:
https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/NamingBasics.html#//apple_ref/doc/uid/20001281-1002931-BBCFHEAB
For a full list of well-known acronyms:
@@ -37,7 +37,7 @@ Options
.. option:: Acronyms
- Semicolon-separated list of acronyms that can be used as prefix
- of property names.
+ Semicolon-separated list of acronyms that can be used as a prefix
+ or a suffix of property names.
- Defaults to `ASCII;PDF;XML;HTML;URL;RTF;HTTP;TIFF;JPG;PNG;GIF;LZW;ROM;RGB;CMYK;MIDI;FTP`.
+ If unset, defaults to "ACL;API;ARGB;ASCII;BGRA;CMYK;DNS;FPS;FTP;GIF;GPS;HD;HDR;HTML;HTTP;HTTPS;HUD;ID;JPG;JS;LAN;LZW;MDNS;MIDI;OS;PDF;PIN;PNG;POI;PSTN;PTR;QA;QOS;RGB;RGBA;RGBX;ROM;RPC;RTF;RTL;SDK;SSO;TCP;TIFF;TTS;UI;URI;URL;VC;VOIP;VPN;VR;WAN;XML".
diff --git a/clang-tools-extra/test/clang-tidy/objc-property-declaration.m b/clang-tools-extra/test/clang-tidy/objc-property-declaration.m
index c06a8ff37f6..09af33eee21 100644
--- a/clang-tools-extra/test/clang-tidy/objc-property-declaration.m
+++ b/clang-tools-extra/test/clang-tidy/objc-property-declaration.m
@@ -1,5 +1,7 @@
// RUN: %check_clang_tidy %s objc-property-declaration %t
+@class NSData;
@class NSString;
+@class UIViewController;
@interface Foo
@property(assign, nonatomic) int NotCamelCase;
@@ -8,6 +10,8 @@
@property(assign, nonatomic) int camelCase;
@property(strong, nonatomic) NSString *URLString;
@property(strong, nonatomic) NSString *bundleID;
+@property(strong, nonatomic) NSData *RGBABytes;
+@property(strong, nonatomic) UIViewController *notificationsVC;
@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
OpenPOWER on IntegriCloud