[clang] clang-format: Add IncludeSortKey option (PR #137840)

Owen Pan via cfe-commits cfe-commits at lists.llvm.org
Thu Jun 26 00:18:22 PDT 2025


================
@@ -1647,7 +1647,7 @@ FormatStyle getLLVMStyle(FormatStyle::LanguageKind Language) {
   LLVMStyle.SeparateDefinitionBlocks = FormatStyle::SDS_Leave;
   LLVMStyle.ShortNamespaceLines = 1;
   LLVMStyle.SkipMacroDefinitionBody = false;
-  LLVMStyle.SortIncludes = {/*Enabled=*/true, /*IgnoreCase=*/false};
+  LLVMStyle.SortIncludes = {/*Enabled=*/true, /*IgnoreCase=*/false, /*IgnoreExtension=*/false};
----------------
owenca wrote:

> ```
> #include "A.h"
> #include "A-util.h"
> #include "A.inc"
> ```
> 
> I don't see how clang-format would ever return this today without disabling include sorting? `-` sorts before `.` so `A-util.h` will always be put before `A.h` and `A.inc` today if include sorting is enabled.

Actually, it is the current (20.1.7 and 117ed65c072020a0f95afbc47ff2ef5a6a50612a) behavior, which is a bug IMO.

https://github.com/llvm/llvm-project/pull/137840


More information about the cfe-commits mailing list