================
@@ -1503,6 +1503,77 @@ TEST_F(SortIncludesTest, IgnoreExtension) {
"input.h"));
}
+TEST_F(SortIncludesTest, FilesBeforeFolders) {
+ FmtStyle.SortIncludes.FilesBeforeFolders = true;
+
+ // Files at the same directory level sort before subdirectories.
+ verifyFormat("#include \"a.h\"\n"
+ "#include \"b.h\"\n"
+ "#include \"bar/a.h\"\n"
+ "#include \"bar/b.h\"\n"
+ "#include \"foo/a.h\"",
+ sort("#include \"bar/b.h\"\n"
+ "#include \"a.h\"\n"
+ "#include \"foo/a.h\"\n"
+ "#include \"bar/a.h\"\n"
+ "#include \"b.h\"",
+ "input.h"));
+
+ // Files and folders are each sorted alphabetically at each level.
+ verifyFormat("#include \"a.h\"\n"
+ "#include \"b.h\"\n"
+ "#include \"c.h\"\n"
+ "#include \"bar/x.h\"\n"
+ "#include \"foo/a.h\"\n"
+ "#include \"foo/b.h\"",
+ sort("#include \"foo/b.h\"\n"
+ "#include \"bar/x.h\"\n"
+ "#include \"c.h\"\n"
+ "#include \"a.h\"\n"
+ "#include \"foo/a.h\"\n"
+ "#include \"b.h\"",
+ "input.h"));
+
+ // Recursion: files in a subdir sort before nested subdirs.
+ verifyFormat("#include \"dir/a.h\"\n"
+ "#include \"dir/b.h\"\n"
+ "#include \"dir/sub/a.h\"\n"
+ "#include \"dir/sub/b.h\"",
+ sort("#include \"dir/sub/b.h\"\n"
+ "#include \"dir/a.h\"\n"
+ "#include \"dir/sub/a.h\"\n"
+ "#include \"dir/b.h\"",
+ "input.h"));
+
+ // FilesBeforeFolders combined with IgnoreCase.
+ FmtStyle.SortIncludes.IgnoreCase = true;
+ verifyFormat("#include \"A.h\"\n"
+ "#include \"b.h\"\n"
+ "#include \"Bar/a.h\"\n"
+ "#include \"foo/B.h\"",
+ sort("#include \"foo/B.h\"\n"
+ "#include \"Bar/a.h\"\n"
+ "#include \"b.h\"\n"
+ "#include \"A.h\"",
+ "input.h"));
+ FmtStyle.SortIncludes.IgnoreCase = false;
+
+ // FilesBeforeFolders combined with IgnoreExtension.
+ FmtStyle.SortIncludes.IgnoreExtension = true;
+ verifyFormat("#include \"a.h\"\n"
+ "#include \"a.inc\"\n"
+ "#include \"a-util.h\"\n"
+ "#include \"bar/a.h\"\n"
+ "#include \"bar/b.h\"",
+ sort("#include \"bar/b.h\"\n"
+ "#include \"a-util.h\"\n"
+ "#include \"bar/a.h\"\n"
+ "#include \"a.inc\"\n"
+ "#include \"a.h\"",
+ "input.h"));
+ FmtStyle.SortIncludes.IgnoreExtension = false;
----------------
phoad107185 wrote:
your are missing PARSE tests
https://github.com/llvm/llvm-project/pull/208954
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits