fix: prevent dx fmt from adding trailing whitespace to blank lines #5224
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.
Note from human: this is Claude output, I have limited Dioxus experience:
Summary
This fixes a conflict between
dx fmtandcargo fmt(rustfmt). Previously,dx fmtwould add indentation whitespace to blank lines inside RSX blocks, butcargo fmtremoves trailing whitespace from all lines. This made it impossible for code to satisfy both formatters.The Problem
Many projects run both formatters as checks in CI or pre-commit hooks:
This creates an impossible cycle:
cargo fmthas clean blank lines (no trailing whitespace)dx fmt --checkfails because it wants indentation on those blank linesdx fmtadds trailing whitespace to blank linescargo fmt --checkfails because it wants to remove that whitespaceThere's no state where both checks pass, so projects either have to:
sedto strip trailing whitespace (hacky)The Fix
Skip adding indentation to empty lines in two places in
prettier_please.rs:Now
dx fmtproduces output thatcargo fmtalso accepts - blank lines stay blank.Testing
Added two new test cases:
blank_lines- tests RSX inside match armsblank_lines_preserved- tests that blank lines between elements are preserved without trailing whitespaceAll existing tests continue to pass.
Fixes #5223