-
-
Notifications
You must be signed in to change notification settings - Fork 452
[3.0] Rework naming system #2565
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Exanite
merged 155 commits into
dotnet:develop/3.0
from
Exanite:feature/rework-naming-system
Apr 14, 2026
Merged
Changes from all commits
Commits
Show all changes
155 commits
Select commit
Hold shift + click to select a range
3ac76f2
Update OpenAL name overrides to match the 2 character acronym thresho…
Exanite 634e736
Start of feature/nested-struct-name-affixes branch
Exanite 35f0f59
Cleanup leftover return statement
Exanite cd2ccfd
Split TransformHandles into two mods
Exanite 4b119b2
Rename UseDSL to UseDsl
Exanite f3900b9
Cleanup unused property in TransformHandles
Exanite 851c3ff
Cleanup usages of redundant collections expressions in TransformHandles
Exanite 2f018ff
Add NameAffixer.AddResolvedNameAffix() for handling compound names
Exanite 50a4115
Use AddResolvedNameAffix for extracted function pointer delegate types
Exanite 8388878
Use AddResolvedNameAffix for extracted nested structs and remove name…
Exanite 674c61a
Rename resolved affix to referenced affix and add parsing code for re…
Exanite d2ae93d
Add extra ConsecutiveNumbers test case documenting that Xs between nu…
Exanite d51a68e
Fix incorrect declarationOrder implementation
Exanite a30ac45
Change Prettify to not prefix identifiers starting with numbers
Exanite fb98f40
Change the list and order of INameTrimmers used to be statically conf…
Exanite 68153ff
Replace now outdated comment
Exanite e0fb52e
Move PrettifyNamesTrimmer higher up in the class to make it more obvi…
Exanite 044c84b
Remove INameTrimmer.Version
Exanite e9b2377
Add PrefixIfStartsWithNumberTrimmer
Exanite 464703c
Remove TrimmerBaseline config option
Exanite adf4eee
Rename INameTrimmer to INameProcessor and update rest of codebase
Exanite f321238
Simplify name affixer name processor names to be StripAffixesNameProc…
Exanite d8e808d
Shorten names a bit more for readability
Exanite 6983172
Decide to only support references within the same scope depth
Exanite 14d9d65
Restrict feature set of AddReferencedNameAffix even more for simplicity
Exanite 0228a56
Implement referenced affixes and change how -Delegate types generated…
Exanite 5a4b6cd
Update OpenAL name overrides in generator.json
Exanite 16ba7ea
Update doc comment in ServiceCollectionExtensions to indicate removal…
Exanite 3ced75c
Merge branch 'feature/update-openal-name-overrides' into feature/nest…
Exanite 86e12c4
Update name overrides for OpenAL to match new Delegate type naming co…
Exanite 2ecb6b1
Optimize comparison by hoisting the calculation
Exanite 5788cb7
Add topological sort to ReapplyAffixesProcessor
Exanite e56b4cf
Improve error handling by checking for case where dependencies are no…
Exanite 85e2461
Edit error message
Exanite 0edec2b
Add test: PrettifyNamesTests.SuccessfullyUsesReferencedAffixes
Exanite aad7a0b
Use "SDL.gen.cs" for test document name
Exanite f200deb
Add tests for referenced affix behavior
Exanite 6a791b0
Alphabetically sort the mod names
Exanite 64fb7c6
Add start of IdentifySharedPrefixes mod
Exanite 7e7442d
Work on IdentifySharedPrefixes
Exanite e416196
Remove ApplyPrettifyOnlyPipeline
Exanite 2763385
Rename BreakIntoWords as SplitIntoWords
Exanite 6160704
Remove the double legacy NameTrimmers
Exanite 07a0d2f
Fix compile errors
Exanite 3ec90a7
Temporary: Disable all mods after PrettifyNames
Exanite d5d17fe
Add SharedPrefix affix config to Vulkan job
Exanite 7ac5953
Remove unused isContainer param from GetTrimmingName
Exanite 069a4a2
Work on IdentifySharedPrefixes
Exanite df44424
Replace regex based NameUtils.LenientUnderscore() with NameSplitter.U…
Exanite 0fd7efc
Merge branch 'exp/identify-shared-prefixes-1' into feature/identify-s…
Exanite e1e6785
Fix compile errors due to changes
Exanite 5a1b95e
Remove NonDeterminant/Transformed attribute handling from PrettifyNames
Exanite bb05c07
Slightly simplify NameTrimmer
Exanite b20ed78
Remove NameTrimmer usage from ExtractNestedTyping and slightly optimi…
Exanite 7d9297b
Slightly cleanup NameTrimmer
Exanite 3cfd17a
Annotate the param names for NameTrimmer's GetPrefix call for readabi…
Exanite ce27490
Implement visitor for IdentifySharedPrefixes
Exanite 4ee05ac
Properly store scopes
Exanite a6ab813
Handle filtering of non C-prefixed names
Exanite bab0385
Work on migrating the NameTrimmer code over to IdentifySharedPrefixes
Exanite 6455a62
Cleanup
Exanite 26bd209
Add affix handling to IdentifySharedPrefixes
Exanite 4fc2479
Implement shared prefix identification output to name affixes
Exanite af0a1df
Fix incorrect Rewriter implementation
Exanite e7af8dc
Simplify code
Exanite 9da2aaa
Add missing ModConfiguration attribute
Exanite 925269e
Fix incorrect method call
Exanite 4cfaacb
Fix incorrect member name output for identified prefixes
Exanite 64b00db
Fix duplicate key exception caused by functions being able to have du…
Exanite d93c3b8
Revert "Temporary: Disable all mods after PrettifyNames"
Exanite 4c64485
Update generator config for OpenAL, OpenGL, and SDL to use IdentifySh…
Exanite a3dcf33
Add another test case as an example of how "2D" is split
Exanite 655ae58
Add another prefix override for SeparableTargetEXT
Exanite b9383b9
Migrate over most prefix trimming/identification tests from PrettifyN…
Exanite 33ed566
Update PrettifyNamesTests now that prefix identification is done sepa…
Exanite d4c80c8
Migrate over the NameTrimmerTests
Exanite f4a3054
Remove IdentifiesSharedPrefix_WhenPrefixesDeclared
Exanite b78c728
Also remove the snapshot for IdentifiesSharedPrefix_WhenPrefixesDeclared
Exanite 7f84c72
Change INameProcessor to be private to PrettifyNames
Exanite 466d92b
Change nPasses to be a class constant to allow usage of doc comments
Exanite 0986ecc
Rename _forbiddenTrimmings to _forbiddenPrefixes and adjust docs
Exanite 566de49
Change GetPrefix to use a non-null scope parameter for consistency
Exanite 29b0672
Add comment explaining why the topological sort exists
Exanite 8a9b611
Begin replacing the "container" terminology with "scope"
Exanite 9e5e54b
Fix failing tests since the global scope is now represented with an e…
Exanite e32d647
Cleanup IdentifySharedPrefixes
Exanite c8843fe
Combine EnumInProgress with TypeInProgress
Exanite 8ae006b
Simplify affix data storage and retrieval
Exanite 7a3518d
Update docs for Visitor.AffixData
Exanite c2af084
Edit docs for IdentifySharedPrefixes
Exanite 145ff77
Swap parameter order on ReportName in IdentifySharedPrefixes
Exanite c23fbcf
Rewrite PrettifyNames.Visitor to match IdentifySharedPrefixes.Visitor
Exanite d20a1c5
Reorder PrettifyNames.Configuration members to improve scannability
Exanite 711165d
Begin rewriting the name processing part of PrettifyNames.ExecuteAsync
Exanite 07f0f8b
Adjust error message for cycle detection
Exanite b1aef87
Fix missing method declaration data
Exanite 3998686
Fix missing name data
Exanite 46765ad
Add todos and work on updating docs
Exanite 9166f4a
Change code and comments to refer to trimming names as original names…
Exanite c01a707
Move CandidateNames into PrettifyNames
Exanite d60978e
Fix typo
Exanite c389fc5
Rename DiscrimStr to GetMethodDiscriminator
Exanite 632bdc3
Cleanup naming
Exanite 8967453
Use if statements instead of ternaries for populating dictionaries
Exanite 232183d
Update name conflict resolution code to account for non-method and me…
Exanite e3d3e94
Add another todo
Exanite ab0fba0
Change NameProcessorContext to be a class
Exanite 6034d3d
Begin exposing the entire set of names to name processors and rewriti…
Exanite 408d7a2
Roughly outline the final implementation and move code to where it ro…
Exanite 6109e73
Define name processor inputs
Exanite f0bd1dd
Also provide affix config to ReapplyAffixesProcessor
Exanite 4224b76
Implement HandleOverridesProcessor
Exanite 555ba1b
Cleanup NameProcessorContext
Exanite 7e7ee74
Remove helper data retrieval methods from ScrapedNameData since it ca…
Exanite 7bbd7ef
Remove ScrapedNameData since it's now just an empty wrapper class
Exanite 2d02f57
Reimplement StripAffixesProcessor
Exanite 05919c0
Reimplement PrettifyProcessor
Exanite 8081f59
Reimplement ReapplyAffixesProcessor
Exanite d263a47
Reimplement PrefixIfStartsWithNumberProcessor
Exanite 36f67e7
Edit documentation and add RemoveUnmodifiedFinalNamesProcessor
Exanite 15c9541
Add docs for PrefixIfStartsWithNumberProcessor
Exanite d980e53
Implement ResolveConflictsProcessor using adapted name conflict resol…
Exanite 86440b0
Add remark doc comment on ResolveConflictsProcessor about it copying …
Exanite 425bce4
Add NameSymbolVisitor for gathering symbols to rename
Exanite 6061a26
Add remark comment on nested type support in PrettifyNames
Exanite 7a5eb0b
Fix constructors not getting renamed
Exanite 4062c5f
Add PrettifyNamesTests.ConflictsAreResolved_ForMethodsAndConstants (c…
Exanite 887f7ea
Work on non-method/method conflict resolution
Exanite 983ee2b
Also add test case: ConflictsAreResolved_ForMethodsAndConstants_WithA…
Exanite c259e3c
Ensure conflicts are iterated deterministically
Exanite 3a751f4
Add ConflictsAreResolved_ForMethodsAndConstants_WithAdditionalDiscrim…
Exanite 0858b9a
Implement non-method/method conflict resolution and fix secondaries n…
Exanite 851bbf3
Ensure that the temporary data collections are allocated once and edi…
Exanite 8a61406
Implement "-Value" suffixing for non-methods conflicting with methods…
Exanite 4b84780
Decide it's not worth implementing cross-scope name referencing for a…
Exanite e603c86
Remove unused RenamedType struct and unused MemberData.Name property
Exanite 9a130c3
Fix -Value suffixing not working properly
Exanite c3f0462
Update test snapshot
Exanite 7f5bab0
Also resolve referenced affixes from the final set of names and the O…
Exanite 85daff5
Add ReapplyAffixesProcessor.TryResolveName method (refactor)
Exanite d630d1f
Change ReapplyAffixesProcessor to use one global topological sort and…
Exanite 2574cc5
Fix issue where overrides break the topological sort
Exanite 6f38318
Reorder tests in file
Exanite dfa7b4e
Add test case: SuccessfullyUsesReferencedAffixes_WhenOverridden
Exanite f75ac4b
Rename NameProcessorContext/NameDataVisitor.Scopes to Names
Exanite e344cc5
Work on refactoring name affix processors
Exanite c43ac7d
Add local OutputName function
Exanite 13db50d
Implement the option to prettify individual affixes
Exanite aac49dd
Update generator config now that affixes are prettified by default
Exanite 51d6b7d
Don't prettify referenced affixes by default since we usually want th…
Exanite 0ba719c
Change affixes to not be prettified by default since it simplifies th…
Exanite 86b8bbd
Empty commit
Exanite fd4db1f
Merge branch 'develop/3.0' into feature/rework-naming-system
Exanite a737fe6
Update snapshot to match expected stated by comment
Exanite 6c6baca
Adjust doc comment wording for IdentifySharedPrefixes._passCount
Exanite File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Binary file not shown.
Binary file not shown.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.