-
Notifications
You must be signed in to change notification settings - Fork 659
Formatting long conditional expressions & types #2411
Comments
Probably an easy fix for this might be to put |
Do you think the indentation for each sub conditional helps or not? |
For now, I think we should almost always try to match Prettier's style. It feels pretty important for adoption to reduce migration friction. Later, we can consider adding an option that enables opinionated Rome formatting if we have enough possible enhancements that it's worth it. |
Too many options already 😝 Thank you for your input! |
@yassere @NicholasLYang Could you please make some sense into this code? You're saying that we have to match prettier, but to me it seems bugged. It doesn't have any consistent logic. One branch is indented while the other is not. To me, it seems a bug. |
I'm seeing that snippet formatted by Prettier as: fee
? fee
? eee
: feee
? dee
: dee
: feee
? fee
: eddeefeeeffefefe
? fddefeffefe
: "test"; I haven't looked at the relevant Prettier code, but here's what I think is happening: In a typical ternary chain, each But if you use a Does that make sense? |
@yassere I wanted to know why the right hand side is indented while the left hand side is not (or the other way around). Both arms have a sequence expression. One has one indentation level, while the other doesn't. To me, it's a bug. |
@ematipico It has to do with how the conditional expressions are nested into each other: if you looks closely at the tokens used at the start of each branch you'll notice that sequences of |
And now you all understand why I added the indentation, because to me it's really difficult to understand the depth of these expressions. |
Assigning to Yasser as he understands better then me these damn expressions 😛 Thank you Yasser! |
The problem is self-contained, but it requires a good understanding of how nested conditionals folds and how the grouping is applied. |
This should be fixed in the latest release. |
Rome's formatter doesn't break long conditional expressions across multiple lines when they exceed the line width. Playground
Input
Prettier
Rome
Expected
Rome's formatting should match Prettier's.
If we decide to keep Rome's current formatting of nested conditional expressions then add a section to Rome's website that explains why Rome's formatting differs and why we prefer it over Prettiers. The reason must be compelling enough because it makes it more difficult to adopt Rome.
The text was updated successfully, but these errors were encountered: