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)
- Parentheses missing with `await` and `typescript` parser HOT 2
- Unstable formatting of indexes and methods invocations in javascript HOT 1
- Reimplement range format
- Can't yield an array HOT 1
- feat: add support for @let syntax in Angular HOT 2
- Issue formating large HTML file HOT 2
- [Vue] Incorrect syntax error for tag-like string in template literals
- Not formatting any xml files if file extension is not explicitly defined HOT 4
- Cannot find package 'prettier-plugin-svelte again HOT 2
- Ugly output in logical expression with long membe rexpression and object literal
- `--experimental-ternaries` along with `--no-semi` produces incorrect code
- Release 3.3 HOT 1
- Incorrect line breaks in object destructuring expressions when exceeding line width
- Ignore global gitignore or global prettierignore
- Add support for "with" keyword in import attributes HOT 1
- let multi variable declarators one line HOT 1
- Unexpected line break in `assert { type: "json" }`
- Some empty lines is being removed in markdown YAML frontmatter HOT 3
- Bug, prettier messed up my js file HOT 2
- resolveConfigFile bug? HOT 2
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.