// Objective-C categories have a `+suffix` format, but should be grouped
// with the file they are a category of.
+ size_t StartIndex = Canonical.find_last_of('/');
+ if (StartIndex == StringRef::npos) {
+ StartIndex = 0;
+ }
return Canonical.substr(
- 0, Canonical.find_first_of('+', Canonical.find_last_of('/')));
+ 0, Canonical.find_first_of('+', StartIndex));
}
return RemoveFirstSuffix(
RemoveFirstSuffix(Str, {".cc", ".cpp", ".c", ".h", ".hpp"}),
utils::IncludeSorter::IS_Google_ObjC) {}
std::vector<StringRef> headersToInclude() const override {
- return {"clang_tidy/tests/insert_includes_test_header+foo.h"};
+ return {"top_level_test_header+foo.h"};
}
};
{"clang_tidy/tests/"
"insert_includes_test_header.h",
"\n"},
+ // Top-level main file include +
+ // category.
+ {"top_level_test_header.h", "\n"},
+ {"top_level_test_header+foo.h", "\n"},
// ObjC category.
{"clang_tidy/tests/"
"insert_includes_test_header+foo.h",
TEST(IncludeInserterTest, InsertCategoryHeaderObjectiveC) {
const char *PreCode = R"(
-#import "clang_tidy/tests/insert_includes_test_header.h"
+#import "top_level_test_header.h"
void foo() {
int a = 0;
})";
const char *PostCode = R"(
-#import "clang_tidy/tests/insert_includes_test_header.h"
-#import "clang_tidy/tests/insert_includes_test_header+foo.h"
+#import "top_level_test_header.h"
+#import "top_level_test_header+foo.h"
void foo() {
int a = 0;
})";
- EXPECT_EQ(
- PostCode,
- runCheckOnCode<ObjCCategoryHeaderInserterCheck>(
- PreCode, "repo/clang_tidy/tests/insert_includes_test_header.mm"));
+ EXPECT_EQ(PostCode, runCheckOnCode<ObjCCategoryHeaderInserterCheck>(
+ PreCode, "top_level_test_header.mm"));
}
TEST(IncludeInserterTest, InsertGeneratedHeaderObjectiveC) {