Support case variants for insensitive lexical sort #189
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.
Add support for keys that are duplicates (but in different cases) to the case-insensitive lexical sort.
This is especially useful for translation files that are stored as JSON, such as:
These two keys represent different translation strings, so cannot be de-duped. When running through the current case-insensitive lexical sort, because the keys are first lowercased and then sorted, the order of these keys can change from one run to the next. This causes constant changes to the JSON file, and can fail pre-commit hooks, etc.
This PR checks to see if the keys are duplicates, and if so, falls back to the case-sensitive lexical sort to maintain consistent sorting between the conflicting keys.