Skip to content

Preserve terminal newlines in FormatCode diffs - #1331

Draft
srijan2607 wants to merge 1 commit into
google:mainfrom
srijan2607:fix/formatcode-diff-line-endings
Draft

srijan2607 wants to merge 1 commit into
google:mainfrom
srijan2607:fix/formatcode-diff-line-endings

Conversation

@srijan2607

Copy link
Copy Markdown

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 file marker. 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

print_diff / diff does not include new line at the end of the file

1 participant