stephanemoore requested changes to this revision.
stephanemoore added inline comments.
This revision now requires changes to proceed.


================
Comment at: 
clang-tools-extra/clang-tidy/google/RequireCategoryMethodPrefixesCheck.cpp:23
+  Finder->addMatcher(objcMethodDecl(hasDeclContext(
+      objcCategoryDecl())).bind(CustomCategoryMethodIdentifier), this);
+}
----------------
Technically category method prefixing is only strictly enforced on classes that 
are shared:
"If a class is not shared with other projects, categories extending it may omit 
name prefixes and method name prefixes."
https://github.com/google/styleguide/blob/gh-pages/objcguide.md#category-naming

With that in mind, perhaps we should match on categories on classes that extend 
classes that are declared in system headers? I think you can accomplish that by 
adding a custom inner matcher in `objcCategoryDecl` which pulls out the 
Objective-C interface using 
[clang::ObjCCategoryDecl::getClassInterface](https://clang.llvm.org/doxygen/classclang_1_1ObjCCategoryDecl.html#acdb14eeca277cfa745a4e8e842312008)
 and then add `isExpansionInSystemHeader` as an inner matcher on the custom 
inner matcher. WDYT? Let me know if you need help putting together.


================
Comment at: 
clang-tools-extra/docs/clang-tidy/checks/google-objc-require-category-method-prefixes.rst:41
+
+.. option:: ExpectedPrefixes
+
----------------
This option seems to describe a list of class prefixes that are whitelisted. If 
that is the case, perhaps `WhitelistedPrefixes` or `WhitelistedClassPrefixes` 
would be a better name for the option? WDYT?


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D65917/new/

https://reviews.llvm.org/D65917



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to