Comments (8)
That's not intentional, and is ugly. Binary operators are a bit difficult to get right. We can play with this.
from prettier.
@llimllib what format do you think we should do? Either:
lots + of + additions + are + put + into + some +
weird + format + thats + ugly + 0;
lots +
of +
additions +
are +
put +
into +
some +
weird +
format +
thats +
ugly +
0;
from prettier.
(I'm following along the livestream)
I vote for option 2, especially for LogicalExpressions. They can often look like this:
someLongCondition() ||
this.someMethod() === someValue ||
(somethingElseIsTrue && somethingElse === false)
that is, the contents of each condition are longish.
BinaryExpressions, where you often are adding and subtracting a bunch of things (as in the example) might be different, but option 2 is a reasonable default for this case.
from prettier.
I feel like 1) the line should be maximized, similarly to how objects are and 2) the comparison is different than the additions?
So my favorite is:
lots + of + additions + are + put + into + some + weird + format + thats +
ugly > 0;
and I don't at all mind:
lots + of + additions + are + put + into + some +
weird + format + thats + ugly > 0;
I'm not a big fan of, but I could tolerate:
lots +
of +
additions +
are +
put +
into +
some +
weird +
format +
thats +
ugly > 0;
But I really hate
lots +
of +
additions +
are +
put +
into +
some +
weird +
format +
thats +
ugly >
0;
from prettier.
Yeah, what does this look like when mixing LogicalExpressions and BinaryExpressions, and mixing operators of varying precedence?
from prettier.
Let's consolidate fixing binary/logical operators in #89. I'm working on this now.
from prettier.
@llimllib check out #262. Unfortunately right now the PR implements the option you hate most. It's a big refactoring though so I'd like to land at least this right now. There are some very tricky rules getting this to work.
I'd like to follow-up and see if we can get a better style, but this gives us better grounding.
from prettier.
Heck, with a quick hack I was able to implement something like this:
var z = 1 + 2 + 3 * (4 * 5 + 3) / (100000000000000000 * 328233872942374 +
3423942394239) + 2343242342342343 + 10000;
I will follow-up in the PR.
from prettier.
Related Issues (20)
- Comment in last line of YAML files gets leading newline trimmed HOT 1
- Typescript: Prettier incorrectly breaks up constructor properties from modifiers when there is a decorator and comment before it HOT 1
- [Documentation] Pre-Commit Hook Usage case caveat
- Still the error "Error: Comment "Hello" was not printed. Please report this error!" even though I have added a comment in the Doc. HOT 1
- [JavaScript] Comments between ternary operator formatting result is ugly HOT 2
- Prettier wrong formatting of Angular flow HOT 3
- Markdown undesirable formatting behaviour when new text added to paragraph HOT 2
- Error when file names HOT 4
- Can we have a CLI flag that allows ignoring .gitignore and/or .prettierignore please? HOT 2
- Unstable block comment for implemented interfaces (TypeScript) (moved and non-idempotent)
- Markdown lists with extra indent lead to unstable formatting behavior
- [SCSS] Put unary boolean operator in front of expression when wrapping HOT 3
- Incorrect JavaScript configuration caching behavior
- Omitting a key does not does not work on the Config type
- Bug: functions in MDX are not formatted if there is at least one empty line HOT 2
- cli
- Github Actions for Node.js 14 x MacOS fails HOT 5
- "sanity timeout expired: Interrupted system call" on WSL2.
- Inconsistent indentation in JSX conditional blocks
- https://prettier.io/playground/ HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from prettier.