aboutsummaryrefslogtreecommitdiff
path: root/clang/unittests/Format/ConfigParseTest.cpp
diff options
context:
space:
mode:
authorDaan De Meyer <daan.j.demeyer@gmail.com>2025-07-17 09:36:52 +0200
committerGitHub <noreply@github.com>2025-07-17 00:36:52 -0700
commit1653a093def10543d8f958fe7d4cde9ab1dd8bca (patch)
tree8d8d5a7b48603f0644c0dde5c300878e44fb917d /clang/unittests/Format/ConfigParseTest.cpp
parent3cb0c7f45b97802ddc13a15560fbbca2efb75326 (diff)
downloadllvm-1653a093def10543d8f958fe7d4cde9ab1dd8bca.zip
llvm-1653a093def10543d8f958fe7d4cde9ab1dd8bca.tar.gz
llvm-1653a093def10543d8f958fe7d4cde9ab1dd8bca.tar.bz2
[clang-format] Add IgnoreExtension to SortIncludes (#137840)
Sorting by stem gives nicer results when various header file names are substrings of other header file names. For example, a CLI application with a main header named analyze.h and an analyze-xxx.h header for each subcommand currently will always put analyze.h last after all the analyze-xxx.h headers, but putting analyze.h first instead is arguably nicer to read. TLDR; Instead of ``` #include "analyze-blame.h" #include "analyze.h" ``` You'd get ``` #include "analyze.h" #include "analyze-blame.h" ``` Let's allow sorting by stem instead of full path by adding IgnoreExtension to SortIncludes.
Diffstat (limited to 'clang/unittests/Format/ConfigParseTest.cpp')
-rw-r--r--clang/unittests/Format/ConfigParseTest.cpp22
1 files changed, 13 insertions, 9 deletions
diff --git a/clang/unittests/Format/ConfigParseTest.cpp b/clang/unittests/Format/ConfigParseTest.cpp
index d17109a..65d8b36 100644
--- a/clang/unittests/Format/ConfigParseTest.cpp
+++ b/clang/unittests/Format/ConfigParseTest.cpp
@@ -259,6 +259,7 @@ TEST(ConfigParseTest, ParsesConfigurationBools) {
CHECK_PARSE_NESTED_BOOL(SpacesInParensOptions, Other);
CHECK_PARSE_NESTED_BOOL(SortIncludes, Enabled);
CHECK_PARSE_NESTED_BOOL(SortIncludes, IgnoreCase);
+ CHECK_PARSE_NESTED_BOOL(SortIncludes, IgnoreExtension);
}
#undef CHECK_PARSE_BOOL
@@ -980,17 +981,20 @@ TEST(ConfigParseTest, ParsesConfiguration) {
IncludeStyle.IncludeIsMainSourceRegex, "abc$");
Style.SortIncludes = {};
- CHECK_PARSE("SortIncludes: true", SortIncludes,
- FormatStyle::SortIncludesOptions(
- {/*Enabled=*/true, /*IgnoreCase=*/false}));
+ CHECK_PARSE(
+ "SortIncludes: true", SortIncludes,
+ FormatStyle::SortIncludesOptions(
+ {/*Enabled=*/true, /*IgnoreCase=*/false, /*IgnoreExtension=*/false}));
CHECK_PARSE("SortIncludes: false", SortIncludes,
FormatStyle::SortIncludesOptions({}));
- CHECK_PARSE("SortIncludes: CaseInsensitive", SortIncludes,
- FormatStyle::SortIncludesOptions(
- {/*Enabled=*/true, /*IgnoreCase=*/true}));
- CHECK_PARSE("SortIncludes: CaseSensitive", SortIncludes,
- FormatStyle::SortIncludesOptions(
- {/*Enabled=*/true, /*IgnoreCase=*/false}));
+ CHECK_PARSE(
+ "SortIncludes: CaseInsensitive", SortIncludes,
+ FormatStyle::SortIncludesOptions(
+ {/*Enabled=*/true, /*IgnoreCase=*/true, /*IgnoreExtension=*/false}));
+ CHECK_PARSE(
+ "SortIncludes: CaseSensitive", SortIncludes,
+ FormatStyle::SortIncludesOptions(
+ {/*Enabled=*/true, /*IgnoreCase=*/false, /*IgnoreExtension=*/false}));
CHECK_PARSE("SortIncludes: Never", SortIncludes,
FormatStyle::SortIncludesOptions({}));