Repository navigation
Preserve terminal newlines in FormatCode diffs - #1331
Draft
srijan2607 wants to merge 1 commit into
Draft
srijan2607 wants to merge 1 commit into
srijan2607 wants to merge 1 commit into
Conversation
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Fixes #1008.
FormatCode(..., print_diff=True)discards line endings before generating its diff. A change that only adds the final newline is therefore reported as unchanged, and other diffs omit the missing-newline marker.Preserve physical lines and emit the standard
No newline at end of filemarker. Regression tests also cover Unicode separators inside string literals, which must not become diff line boundaries. Formatter output and file reading are unchanged; the separate file/CLI normalization issue in #1017 is not addressed.Testing: the default unittest discovery command passes 615 tests on Python 3.11 and 3.13. 19 diff round-trip cases pass (GNU patch for nonempty diffs). YAPF, flake8 7.1.1 and isort 6.0.0 checks pass for both changed files.