fix(js_formatter): don't hug blocks in case clauses with multiple statements #1035
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.
Summary
I noticed this while checking diagnostics from trying to migrate our monorepo. Switch case clauses with a block body let the opening brace of the clause hug the same line as the
case
itself, like:But when the same case clause contains additional statements after the block, Prettier doesn't allow them to hug:
This PR makes Biome match Prettier's behavior here: if there's more than a single non-empty block statement in the case clause, the braces won't be allowed to hug.
I think this is actually good behavior, even if it's somewhat ugly, because it shows more clearly that statements after the block (i.e., the
break;
above), are still part of the case clause, even though the braces might suggest the clause has ended.I also noticed that trailing comments weren't staying on the same line, so I fixed that as part of this as well.
Test Plan
Added a new test case to cover this.