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)
- `pre-commit` mirror continued support for version 3 after `v3.1.0` HOT 3
- Number list confusion with heading after bullet list
- Preserve HTML attribute wrapping like the default formatter "html.format.wrapAttributes": "preserve"
- Typescript regression in handling functions with generic types and method chaingin in 3.2.0 compared to 3.1.0 HOT 1
- Second format failed when running next lint. Rule: "prettier/prettier" HOT 2
- Extension 'Prettier - Code formatter' is configured as formatter but it cannot format 'Svelte'-files HOT 1
- Markdown Parser double spaces lists with code that has spaces
- TypeError: join(...).filter is not a function
- TypeError: prettierApi.getFileInfo.sync is not a function
- TypeError: prettierApi.getFileInfo.sync is not a function HOT 1
- Same configurations but different document format display HOT 1
- Formatting of embedded equations in Markdown is sometimes incorrectly escaping underscores
- Formatting can break `/*#__PURE__*/` annotations HOT 1
- Issues with prettier-vscode not working properly with plugins since prettier 3.1.0 release HOT 8
- JSX empty lines are removed
- File names with dollar sign ($) in the name cannot be processed by Prettier
- Typescript 5 const modifier on type parameters leads to SyntaxError HOT 1
- Simple template literal should break at all interpolations instead of exceeding the max line width HOT 6
- ENAMETOOLONG error when running prettier HOT 1
- [Feature Request] Add support for TS config files (`prettier.config.ts`) 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.