summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authoraidanfnv <aidanf@nvidia.com>2025-07-21 17:29:40 -0700
committerGitHub <noreply@github.com>2025-07-22 00:29:40 +0000
commit9adac4069fbcc7ce5bea2c42d19c61eb1dcd7f25 (patch)
tree65c0d8c483b9e5357fcf61aa7a35287e537d0017 /tools
parent13dd01489efd89268d15751c5299e5783015bbcd (diff)
Fix capability generator to sort capabilities alphabetically within header groups (#7851)
* Fix capability generator to sort capabilities alphabetically within header groups The slang-capability-generator now sorts capabilities alphabetically by name within each header group in the generated a3-02-reference-capability-atoms.md documentation file. This ensures consistent ordering for better readability and organization. Fixes #5030 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: aidanfnv <aidanfnv@users.noreply.github.com> * Regenerate capability atoms documentation with alphabetical sorting The capability generator now sorts capabilities alphabetically within each header group. This commit includes the regenerated documentation file to demonstrate the alphabetical sorting functionality implemented in the generator code. Generated with updated capability generator that sorts capabilities within groups: Targets, Stages, Versions, Extensions, Compound Capabilities, and Other. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com> * format code (#7853) Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: aidanfnv <aidanfnv@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: slangbot <ellieh+slangbot@nvidia.com> Co-authored-by: slangbot <186143334+slangbot@users.noreply.github.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/slang-capability-generator/capability-generator-main.cpp30
1 files changed, 29 insertions, 1 deletions
diff --git a/tools/slang-capability-generator/capability-generator-main.cpp b/tools/slang-capability-generator/capability-generator-main.cpp
index 56b615330..7b7800295 100644
--- a/tools/slang-capability-generator/capability-generator-main.cpp
+++ b/tools/slang-capability-generator/capability-generator-main.cpp
@@ -1063,10 +1063,38 @@ SlangResult generateDocumentation(
setupDocumentationHeader(sbDoc, outPath);
List<StringBuilder> sbDocSections = setupDocCommentHeaderStringBuilders();
+
+ // Group capabilities by header group and sort alphabetically within each group
+ List<List<RefPtr<CapabilityDef>>> capabilitiesByHeaderGroup;
+ capabilitiesByHeaderGroup.setCount((UInt)AutoDocHeaderGroup::Count);
+
+ // Collect capabilities into their respective header groups
for (auto def : defs)
{
- printDocForCapabilityDef(sbDoc, def, sbDocSections);
+ if (!isInternalDef(def) && def->flavor != CapabilityFlavor::Abstract &&
+ def->docComment.headerGroup != AutoDocHeaderGroup::Invalid)
+ {
+ capabilitiesByHeaderGroup[(UInt)def->docComment.headerGroup].add(def);
+ }
+ }
+
+ // Sort capabilities within each header group alphabetically by name
+ for (auto& capabilitiesInGroup : capabilitiesByHeaderGroup)
+ {
+ capabilitiesInGroup.sort([](const RefPtr<CapabilityDef>& a, const RefPtr<CapabilityDef>& b)
+ { return a->name < b->name; });
}
+
+ // Add sorted capabilities to documentation sections
+ for (UInt headerGroupIndex = 0; headerGroupIndex < (UInt)AutoDocHeaderGroup::Count;
+ headerGroupIndex++)
+ {
+ for (auto def : capabilitiesByHeaderGroup[headerGroupIndex])
+ {
+ printDocForCapabilityDef(sbDoc, def, sbDocSections);
+ }
+ }
+
for (auto stringBuilder : sbDocSections)
sbDoc << stringBuilder.toString();
return 1;