https://github.com/DynamicProdBreaker updated https://github.com/llvm/llvm-project/pull/208916
>From 5d844e7c71fbd9745e113824a8b6dd270e47ae0a Mon Sep 17 00:00:00 2001 From: Joseph Tay <[email protected]> Date: Sat, 11 Jul 2026 22:53:27 +0800 Subject: [PATCH 1/2] Allow SortIncludes to override DisableFormat when both are explicitly set to true As https://github.com/llvm/llvm-project/issues/201422 mentions, after the commit that addressed https://github.com/llvm/llvm-project/issues/34447 it became impossible to only sort includes with clang format, as DisableFormat is now hardcoded into the include sorter to disable it when true. Prior discussion to the patch that changed this logic mentioned that there aren't many approaches that are acceptable to allowing only includes to be sorted again, but raised the suggestion that having DisableFormat turn off SortIncludes normally, but letting SortIncludes enable itself again if it is explicitly specified might be acceptable. In light of this, reimplement how DisableFormat disables include sorting by having the enabled flag for SortIncludes be disabled at the moment DisableFormat is set, to allow the actual SortIncludes setting to override it later, which implements the proposed behaviour of DisableFormat turning off SortIncludes when SortIncludes isn't requested, but allowing include sorting to happen when SortIncludes is set explicitly togehter with DisableFormat. --- clang/lib/Format/Format.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index 037111d8e9e5d..0b33ca3f33a11 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -1355,6 +1355,8 @@ template <> struct MappingTraits<FormatStyle> { IO.mapOptional("Cpp11BracedListStyle", Style.Cpp11BracedListStyle); IO.mapOptional("DerivePointerAlignment", Style.DerivePointerAlignment); IO.mapOptional("DisableFormat", Style.DisableFormat); + if (Style.DisableFormat) + Style.SortIncludes.Enabled = false; IO.mapOptional("EmptyLineAfterAccessModifier", Style.EmptyLineAfterAccessModifier); IO.mapOptional("EmptyLineBeforeAccessModifier", @@ -4034,7 +4036,7 @@ tooling::Replacements sortIncludes(const FormatStyle &Style, StringRef Code, ArrayRef<tooling::Range> Ranges, StringRef FileName, unsigned *Cursor) { tooling::Replacements Replaces; - if (!Style.SortIncludes.Enabled || Style.DisableFormat) + if (!Style.SortIncludes.Enabled) return Replaces; if (isLikelyXml(Code)) return Replaces; >From 94920844b826fb4742d1d0ae9c3a5f71c7d39f5f Mon Sep 17 00:00:00 2001 From: Joseph Tay <[email protected]> Date: Wed, 15 Jul 2026 16:14:14 +0800 Subject: [PATCH 2/2] Remove the implementation for disabling for now while I rework the whole thing --- clang/lib/Format/Format.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/clang/lib/Format/Format.cpp b/clang/lib/Format/Format.cpp index 0b33ca3f33a11..1438aa3045cac 100644 --- a/clang/lib/Format/Format.cpp +++ b/clang/lib/Format/Format.cpp @@ -1355,8 +1355,6 @@ template <> struct MappingTraits<FormatStyle> { IO.mapOptional("Cpp11BracedListStyle", Style.Cpp11BracedListStyle); IO.mapOptional("DerivePointerAlignment", Style.DerivePointerAlignment); IO.mapOptional("DisableFormat", Style.DisableFormat); - if (Style.DisableFormat) - Style.SortIncludes.Enabled = false; IO.mapOptional("EmptyLineAfterAccessModifier", Style.EmptyLineAfterAccessModifier); IO.mapOptional("EmptyLineBeforeAccessModifier", _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
