Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adopt prettier for consistent formatting #811

Open
Gozala opened this issue Mar 3, 2017 · 69 comments

Comments

@Gozala
Copy link

commented Mar 3, 2017

@feross what do you think in terms of adopting prettier ? The reason I find it appealing is because in the process of adopting standardjs (see browserhtml/browserhtml#1271) we found out that it's too permissive and does not catch variety of awkward formatting options.

I think with a help of prettier standardjs could deliver promise of "JavaScript Standard Style". Unfortunately that would require some work prettier/prettier#736 to make prettier output standardjs compatible.

@Gozala

This comment has been minimized.

Copy link
Author

commented Mar 3, 2017

Posted this too early going to edit description to include more detalis.

@tunnckoCore

This comment has been minimized.

Copy link

commented Mar 3, 2017

It isnt the right thing in any way. There is ES-Beautifier that tries to do everything using the ESLint ecosystem. That's the right move. Prettier is meant to be opinionated and so it cant be easily integrated and should not be.

The ESLint --fix feature is awesome, and we all should just invest some time to implement autofixes for any rules that we want, then no matter the style we will have awesome consistency prettifier and linter in one. ESLint is the right tool for such things.

ESLint autofix works great here. I think the most important rule that we should implement autofix for is max-len :) Most of the other things are handled already.

And everyone should use standard --fix by default (even, I think it should be enabled by default here) while they run their lints. I even seen few times that there is even two separate npm scripts for just standard called lint and another for fix called fix, wtf? Why? Why you should care and why you want to get tons of warnings most of whose can be autofix with just adding a single flag? It is completely mess.

Just Prettier isn't the right tool. Tried it in last months. Both approaches - first linter than prettiefier and reversed first prettier then the linter - both not work well.

ESLint is most awesome ecosystem in that community, for sure. And we should use it, everyone should use it as both Linter and Prettiefier/Beautifier/Formatter. It just need help.

@Gozala

This comment has been minimized.

Copy link
Author

commented Mar 3, 2017

It isnt the right thing in any way. There is ES-Beautifier that tries to do everything using the ESLint ecosystem. That's the right move. Prettier is meant to be opinionated and so it cant be easily integrated and should not be.

I fundamentally disagree with this. Prettier completely disregards input format and spits out in a consistent format while ESLint and tools around that attempt to preserve typed style & that is pretty much makes consistent styling impossible.

The ESLint --fix feature is awesome, and we all should just invest some time to implement autofixes for any rules that we want, then no matter the style we will have awesome consistency prettifier and linter in one. ESLint is the right tool for such things.

As we tried to adopt standard style we run into too many cases where ESLint was unable to fix things up.

ESLint autofix works great here. I think the most important rule that we should implement autofix for is max-len :) Most of the other things are handled already.

Not in my experience there is ton of things it can not fix and there is also ton of flex in the way code can be formatted, and standard will accept. So at the end of the day we still have majority of comments in pulls about formatting, which defeats the purpose, to us anyway.

And everyone should use standard --fix by default (even, I think it should be enabled by default here) while they run their lints. I even seen few times that there is even two separate npm scripts for just standard called lint and another for fix called fix, wtf? Why? Why you should care and why you want to get tons of warnings most of whose can be autofix with just adding a single flag? It is completely mess.

In my experience fixes actually produce awkward results in terms of formatting, my guess would be that is a reason.

Just Prettier isn't the right tool.

You have not offered any convincing argument to support that claim, just your own opinion that ESLint is a way to go. Please try to offer more constructive input and offer some data to support claims.

Tried it in last months. Both approaches - first linter than prettiefier and reversed first prettier then the linter - both not work well.

I am not surprised given that prettier output does not follow stardardjs rules. By work is required I meant following @jlongster's suggestion to fork prettier to add an options for [standardjs][] rules, hopefully it would be possible to merge it back in.

Can you share list of things that did not work.

ESLint is most awesome ecosystem in that community, for sure. And we should use it, everyone should use it as both Linter and Prettiefier/Beautifier/Formatter. It just need help.

It's cool that you feel that way, but saying everyone should use it is a bit too much. For flow typed projects ESLint has very little to offer other than enforcing formatting as type system deals with actual errors. And given that formatting rules are too flexible result is again, valuable engineering time is spend in discussing or comprehending code formatting.

@feross

This comment has been minimized.

Copy link
Member

commented Mar 6, 2017

@Gozala We used a separate tool to do formatting in the past (esformatter) and it was a huge maintenance burden and very difficult to get the formatter to output code that would consistently pass standard. See https://github.com/maxogden/standard-format

I think prettier is cool, especially if you want to always re-format code on every git check-in, but it's too aggressive for normal use. It will reformat even code that passes standard, which is just too intrusive to recommend to the average user. If you want to start a separate project that uses prettier to format code in standard style, that sounds like a great idea.

But I think we'll stick with eslint's --fix since we want the following:

  1. One config where we maintain all our rules.
  2. Code that passes should not be reformatted.

I'll also mention that the trend of each release of standard is to tighten up rules to prevent multiple ways of writing the same thing. There are many more formatting rules that will be added slowly in future releases. So issues like the ones you ran into should be caught in future releases once we tighten up those rules.

@feross feross closed this Mar 6, 2017

@timoxley

This comment has been minimized.

Copy link
Contributor

commented Mar 7, 2017

standard doesn't have to do everything. A package.json script that runs prettier then standard --fix should solve your problem and requires no changes to standard at all.

@feross

This comment has been minimized.

Copy link
Member

commented Mar 7, 2017

@timoxley That's actually a neat solution for folks who prefer more aggressive regular formatting of their code.

@ArmorDarks

This comment has been minimized.

Copy link

commented Mar 19, 2017

standard doesn't have to do everything. A package.json script that runs prettier then standard --fix should solve your problem and requires no changes to standard at all.

That won't work, because Prettier and Standard rules will collide. It would be great if efforts could be unified and maintainers of boths libs would agree on same code style...

but it's too aggressive for normal use.

I think it's very strange to hear that from creator of lib, which actually aggressively enforces rules on developer.

@KidkArolis

This comment has been minimized.

Copy link

commented Mar 20, 2017

I think this might be one of those things we look back at in a year and be like, why did we cling on manually formatting the code. Auto standard ftw.

@ArmorDarks

This comment has been minimized.

Copy link

commented Mar 20, 2017

I think this might be one of those things we look back at in a year and be like, why did we cling on manually formatting the code. Auto standard ftw.

Yeap. I'm ready for this right now :D

As a side information, about "love" between Standard and Prettier, I will just leave this link here facebook/create-react-app#1847, maybe someone has somthing meaningful to add.

@yoshuawuyts

This comment has been minimized.

Copy link
Contributor

commented Mar 20, 2017

I think it's very strange to hear that from creator of lib, which actually aggressively enforces rules on developer.

@ArmorDarks not a fan of your tone here, it could be mistaken as hostile; please show some moderation going forward. Thank you kindly

@ArmorDarks

This comment has been minimized.

Copy link

commented Mar 20, 2017

@yoshuawuyts If you read my conversation with Dan by following link above, you will see that I'm adept of Standard and defend it, thus I didn't mean to be hostile.

However, yeap, I was sarcastic, because both libraries enforces aggressive rules, so it sounded like very strange and vague argument against when said by creator of one of those libs.

@feross

This comment has been minimized.

Copy link
Member

commented Mar 20, 2017

@ArmorDarks I'm a fan of the concept of prettier, but hesitate to adopt it for the following reasons:

  1. Maintaining two configs that will be hard to keep in sync.

  2. It might not be possible to configure prettier in a way that complies with all the ESLint rules that standard enforces. In that case, it would autofix code in a way that doesn't pass standard.

In an ideal world, they'd adopt all the standard rules (and possibly allow configuration to change controversial ones, like no semis, for their users). Then we could use it for --fix.

If you or someone else wants to look into this approach in more detail, I'm open to at least reviewing the PR.

@ArmorDarks

This comment has been minimized.

Copy link

commented Apr 8, 2017

Ah, @feross. nevermind my earlier replies.

To make this happen we will need attitude to make compromises and changes from both and Standard, and Prettier communities, to unite efforts and focus on strongest points (linting with Standard and code formatting with Prettier) instead of continuing bikeshedding.

I was hoping to make this happen, to help communities unite, but after pretty much aggressive replies of @gaearon against Standard here facebook/create-react-app#1847 and recently discovered regreatful issue #78 (which explains nature of @gaearon attitude toward Standard) started by @gaearon and supported by @jlongster (creator of Prettier) here #78, I have very little believe that this could happen.

Not in this world, I guess.

@feross

This comment has been minimized.

Copy link
Member

commented Apr 13, 2017

@ArmorDarks FWIW, I'm open to working with the prettier team. It would be nice to replace standard --fix with prettier.

Do you know if it's possible to configure prettier in a way that produces code that passes standard?

@gaearon

This comment has been minimized.

Copy link

commented Apr 13, 2017

cc @vjeux

@jlongster

This comment has been minimized.

Copy link

commented Apr 13, 2017

You can already use standard without its formatting rules by using https://www.npmjs.com/package/eslint-config-prettier, and then use prettier to format it. Users interested in this issue are mostly interested in getting the non-formatting rules.

For standard using prettier by default, it's going to be hard, not because of any ill will on either sides, but because there is already a significant community behind both so changing the styles is going to force one of them to change a lot. I don't know what the answer is. If someone wants to pursue it we need to more concrete changes to evaluate it.

Note that a large number of people prefer to run prettier in their editor frequently as they are coding (prettier by default is very fast, much faster than eslint, so it's very responsive), and do linting as a less frequent step. I think it makes sense to separate linting and formatting, and allow users to combine them how they want.

@jlongster

This comment has been minimized.

Copy link

commented Apr 13, 2017

Also, prettier's code wrapping (which is an integral part of why it produces good code) is always going to be a big change for the output of standard. There's no way we can make it so that our output is exactly the same as the current eslint --fix with standard, if that's what is being proposed. There wouldn't be much point in switching to prettier anyway then.

@feross

This comment has been minimized.

Copy link
Member

commented Apr 13, 2017

If we did this, we'd probably want to add a new standard --format flag:

  • standard --fix – make the minimal changes to satisfy standard (uses eslint --fix)
  • standard --format – format the code, which may end up changing valid code (that already satisfies standard) into another valid format (uses prettier)

So, then users that want one canonical format could throw standard --format into their editor or pre-commit hook.

there is already a significant community behind both so changing the styles is going to force one of them to change a lot

The good news here is that standard already has a --fix flag that helps to ease the transition when we change a rule in new major versions. It would be interesting to see a full list of the style differences so we can evaluate how doable this is.

@feross feross reopened this Apr 13, 2017

@kentcdodds

This comment has been minimized.

Copy link

commented Apr 13, 2017

Just thought I'd link to this: prettier-standard-formatter. It's actually simpler to implement than prettier-eslint because with standard you don't need to search around for eslint configs/derive prettier options based on those configs. Pretty nifty 👍

@jlongster

This comment has been minimized.

Copy link

commented Apr 13, 2017

If we did this, we'd probably want to add a new standard --format flag

I think I'm a little confused what the goal is: do you want to take advantage of prettier's wrapping & forcing consistency on more general things (like function arguments), but still apply standard's whitespace rules? If so, that should be pretty easy: run prettier first and then standard --fix. Is that what standard --format could do?

Or are you all somehow wanting the output of standard to be the same as prettier, meaning it runs prettier as the last step? That seems harder because we would have to talk about all the differences and see if we can reconcile. I'm not sure I see the benefit of that since you could easily run standard --fix after prettier to tweak it to get all the current rules (like a space after function name).

Looks like prettier-standard-formatter is runs prettier first and than standard --fix which makes sense.

I'm happy to continue talking about what potential integrations look like!

@feross

This comment has been minimized.

Copy link
Member

commented Apr 13, 2017

Thinking out loud here...

I think the goal of standard --format would be to automatically format invalid code so that it's valid according to standard (this is what standard --fix already does) but also, to format even valid code into one unambiguous format.

standard's style rules are designed to be easy for humans to remember, so that you can write valid code without constantly referring to the guide or using a tool to format the code. For that reason, there are a number of situations where standard allows multiple styles.

// both styles are allowed by `standard`
const x = (z) => z
const y = z => z

Since both styles are allowed by standard, then standard --fix will not touch this code. But if standard --format existed, it would rewrite this code (since that's what prettier would do):

const x = z => z
const y = z => z

But this is okay, since the rewritten code is also valid standard!

Then after running prettier, we'd also run standard to check for non-style issues like programmer errors, usage of deprecated APIs, confusing code, etc.

So, it seems like in an ideal world, standard --format would just be prettier plus standard's non-style rules. That is, it would literally run prettier && standard.

To get to this world, I think we'd need unify our style guides so that prettier outputs code that passes standard. (Or so that it's at least possible to configure prettier to output such code.)

@KidkArolis

This comment has been minimized.

Copy link

commented Apr 13, 2017

@jlongster

This comment has been minimized.

Copy link

commented Apr 13, 2017

@feross I see, thanks for explaining!

I'm a little worried about both of the communities having to keep in sync and making sure that any changes need to be accepted by both, etc. But I actually think most of the things we'd change are not even whitespace-related or things that standard's formatting rules care about. Usually it's a bug with how things are laid out.

Although.. that might not be true. A good example is that we are thinking of changing how we output ternaries. Right now we happen to output them as standard expects, actually. But we might change that.

I think we're actually very in sync already. The biggest difference is the space after function name. I'm betting that you all don't want to change that, I don't think we're going to change that on prettier... as its a pretty frequent thing in the code. Not sure what we'd do about that specific case, but concerns about not being able to change the format still stands.

Is there any reason it can't be prettier && standard --fix? Does standard --fix behave exactly the same way that standard does, meaning it outputs a list of failures, except that it fixes ones that it knows it can? If so, what would be the downside of that?

@feross

This comment has been minimized.

Copy link
Member

commented Apr 13, 2017

I think we're actually very in sync already.

Agreed! I think there's a real opportunity here, given a few compromises, to prevent further fragmentation in community conventions.

but concerns about not being able to change the format still stands.

This is a fair point. But I think that if we wanted, we could each do a release where we change a rule or two and then we're totally in sync. Bam. Then we can recommend standard --fix to help our users migrate, and of course with prettier, your users just run it once more and they're upgraded.

There are challenges, but this seems totally doable if both projects want to make it happen.

Is there any reason it can't be prettier && standard --fix? Does standard --fix behave exactly the same way that standard does, meaning it outputs a list of failures, except that it fixes ones that it knows it can? If so, what would be the downside of that?

Your description of how standard --fix behaves is correct. We could totally do prettier && standard --fix. If there's support for that idea amongst the standard team, we could ship that without any cooperation between projects.

But, then we don't get the huge win that would come from aligning our styles. Namely that it would be easy to switch from/to the different projects, prettier would output code that passes standard, and having one fewer style out there in the wild.

@jlongster

This comment has been minimized.

Copy link

commented Apr 13, 2017

Awesome. I gotta run but let's keep talking!

Are you all really opinionated about the space after function name? fwiw we've been referencing the airbnb style guide to inform us (as one data point) of what is a popular style, and they don't use the space there. It also seems to be preferred by most people who use it. This is probably going to be the biggest sticking point between our styles, I'm guessing.

@jlongster

This comment has been minimized.

Copy link

commented Apr 13, 2017

Also our default style is semicolons, but we just added an option to not use semicolons, so we can do prettier --no-semi && standard but technically standard's default style will still by different than our default style...

@tunnckoCore

This comment has been minimized.

Copy link

commented Apr 14, 2017

most noticeable thing for me is that prettier expands function arguments if >1 and i believe not makes code more readable but more bad. i 'm totally okey with that tobe only when >3.

second one is that it expands objexts, even if object has only one prop. (no space between curlies in objects isng good too {foo:1}, not sure if that can be fixed using esling config prettier) cool it is fixed by v1, im just reading the post now

as about the space after fn name, it's acceptable to relax the rule so there won't have breaking changes.

@tunnckoCore

This comment has been minimized.

Copy link

commented Apr 14, 2017

btw, to clarify a bit about fn args expanding, i'm okey with if line is around 80 to do the expanding in multiple lines, even if the only one arg.

sorry, im on phone

@LinusU

This comment has been minimized.

Copy link
Member

commented Oct 19, 2018

I'd be up for helping to maintain a fork of prettier that adds the necessary options for making it compliant with Standard without having to run eslint --fix afterward. We could have it under the standard org and have the explicit goal of merging options upstream.

We could then create a tool that requires that fork, and exposes a nice cli, without any options, working like standard --fix, but reformats all source.

Potentially that could then be included in the standard command behind e.g. --format.

Just an idea ☺️

@KidkArolis

This comment has been minimized.

Copy link

commented Oct 19, 2018

@LinusU that sounds good. I wonder if you've used prettier-standard before? It actually already works really well. But the only command it has is formatting.

standard already lints, so really, if we just switched standard --format to do what prettier-standard does that would basically do it. We'd have 1 cli with both standard linting and prettier and standard compatible formatting.

@KidkArolis

This comment has been minimized.

Copy link

commented Oct 19, 2018

If we did this, people that prefer prettier could continue using that, people that prefer raw eslint could continue using that, but standard would be for the rest of us - the linter rules we (the rest of us..) all agree to follow + a very powerful formatter.

@brodybits

This comment has been minimized.

Copy link
Contributor

commented Oct 19, 2018

@LinusU

This comment has been minimized.

Copy link
Member

commented Oct 19, 2018

Considering that tools such as prettier-standard and prettier-standard-formatter already exist, can someone elaborate on the possible need for direct integration with prettier itself?

These packages basically first run prettier and then run standard --fix. Preferably, we would be able to just run prettier and it would output code that already conforms to the Standard rules.

It was a while since I last tried them out, but I remember having some problems with that approach, and it was also quite slow.

@KidkArolis

This comment has been minimized.

Copy link

commented Oct 19, 2018

Again, prettier-standard works really well, it's fast on Visual Code (but very slow on Sublime Text). So whatever prettier-standard and vscode plugin are doing, I think this whole thing is already doable with not too much effort at this point.

It's just a matter of whether the owners of standard wish to integrate it into --format command essentially merging in prettier-standard into this tool.

What other technical challenges are there? One negative is increasing the size of standard with all of prettier.. But that's probably tolerable?

@kirillgroshkov

This comment has been minimized.

Copy link

commented Oct 30, 2018

Just saying that this thread and the possibility for the 2 biggest tools to merge (or at least be compatible with each other) is fantastic! For my team the deal-breaker is space-after-function-parens, so we're forced to run TSLint after prettier every time and it's a bit slow (TSLint is way slower than prettier). If only we could have an option in prettier to add space after function name - that would make it compatible with Standard and everyone will be happy!

@brodybits

This comment has been minimized.

Copy link
Contributor

commented Jan 7, 2019

[...] the deal-breaker is space-after-function-parens

I think you meant space-before-function-paren.

I started a brodybits/prettierx fork which supports a --space-before-function-parentheses option and some other updates in case it may be helpful. I would definitely love to see a tool that combines the prettier formatting, with the improvements from brodybits/prettierx, together with the linting semantics from eslint.

@sheerun

This comment has been minimized.

Copy link

commented Jan 20, 2019

@feross While prettier definitely won't support standard.js formatting, I've updated prettier-standard to use prettierx fork for formatting.

The formatting differences between standard --fix and prettier-standard (which since 9.0.0 doesn't use standard --fix underneath) are at this point very minimal (the differences are mainly bugs on standard side and for example how prettier and standards formats trenary expressions), all of which I think could be incorporated into standard.js standards.

One thing that is annoying is that standard reports these whitespace errors as issues. I think it would be better if standard cared just for non-whitespace issues and standard --fix performed strictly whitespace formatting.

@feross Would you be interested in using prettier-standard for standard --fix and using dropping all whitespace rules from eslint configurations?

@LinusU

This comment has been minimized.

Copy link
Member

commented Jan 21, 2019

dropping all whitespace rules from eslint configurations?

🤔 🤔

It there no way to configure eslint and prettierx so that they agree on whitespace?

@sheerun

This comment has been minimized.

Copy link

commented Jan 21, 2019

from my experience no, there are multiple quirks because prettier is more advanced than standard with understanding code and formatting whitespace with it. I think the best option is to get "close enough" and then switch standard to use prettier for whitespace formatting and eslint for everything else but whitespace formatting

@brodybits

This comment has been minimized.

Copy link
Contributor

commented Jan 22, 2019

[...] for example how prettier and standards formats ternary expressions (spelling corrected))

Discussed further in #927. Solving this would be a nice step towards consistency with Prettier formatting. (I did update the prettierx fork with an option for consistency with standard in ternary formatting, would rather see standard consistent with Prettier in ternary formatting.)

[...] and then switch standard to use prettier for whitespace formatting [...]

I have mixed feelings about switching standard to always use Prettier in some form for formatting. I would definitely agree that Prettier has some really nice, advanced formatting capabilities. I can think of the following possible drawbacks:

  • I am not sure if the entire user community would be happy about the extent to which Prettier will reformat the code, even if we would use a fork to go around some of the more controversial decisions. For example: prettier/prettier#5769 - "Prettier formats a sensible one-liner into seven lines"
  • Prettier seems to incur a "pretty" heavy processing overhead

I think it would be ideal to check and process the code using a series of plugins, like what can be done with eslint and what is generally done with Babel, keeping Prettier reformatting as an optional step.

@KidkArolis

This comment has been minimized.

Copy link

commented Jan 25, 2019

Hi..

I've been hanging out on this thread for a while and have recently been thinking more about this problem.

Standard has been enourmously helpful in the last few years in all my projects.
But I've also started using Prettier more and more, because it's code formatting capability is superb.

The two styles are slightly different, which is unfortunate. But standard is not just about code style, it's also about zero config experience, a really well curated set of eslint rules, less decision making.

I've been wanting to get the best of both, prettier's formatting with standard's code quality checks and DX. I've just published a package https://github.com/KidkArolis/healthier that tries to help you combine the two. Hopefully it can be useful to some of you if you're ok with letting go off standard's style formatting rules.

In the future, if standard somehow adopts prettier's formatter, that might be even better. But for now I will see if Healthier can fill that gap.

@NathanielHill

This comment has been minimized.

Copy link

commented Feb 25, 2019

@KidkArolis @sheerun

So I've recently switched to prettier-standard which is awesome so far. Unfortunately, I've run into a few issues getting my VSCode setup working ideally. I found the most popular extension for Prettier+Standard had some slight inconsitencies with the prettier-standard CLI, so I ended up just using an extension to run the CLI on file save and that's working great. The thing I'm missing though (and it's huge), is the auto-linting hints I got while typing from the standard extension.

The only way I can see getting that working is adding back babel, eslint, and babel-eslint as project dependencies which is unfortunate. I would set it up globally, but here doesn't appear to be any way to have a global config for standard 🤔

Anyways, just wondering if anyone has gotten format on save and linting while typing working with prettier-standard

@sheerun

This comment has been minimized.

Copy link

commented Feb 26, 2019

You can use healthier or lynt for linting while using prettier-standard just for formatting.

@KidkArolis

This comment has been minimized.

Copy link

commented Feb 26, 2019

Healthier has both healthier pkg which behaves mostly like standard and has editor plugins. Or you can use it as eslint-config-healthier combined with eslint editor plugin. That way you can use either prettier or prettier-standard to format the code.

@NathanielHill

This comment has been minimized.

Copy link

commented Feb 27, 2019

So, I think the ideal setup would be one npm module (+ one editor plugin) that gives you formatting on save and linting as you type - all with no configuration. Then use husky and lint-staged to enforce both on pre-commit.

I've been using standard now for a few years, but decided to give prettier a try as I was unhappy with certain style inconsistencies that kept occurring.

Long story short, I ended up going down a rabbit hole of inconsistencies between prettier and standard (like spaces after function names 🤦‍♂). I've since settled on prettier and healthier with a 4-line prettier config. healthier basically just provides an ESLint config that is close to standard but compatible with prettier. If I ever need to customize, I can just drop down to vanilla ESLint.

@KidkArolis Thanks for the awesome package, and great choice on the name 👍

Good bye standard 👋 , it's been fun 🎉

@NathanielHill

This comment has been minimized.

Copy link

commented Feb 27, 2019

It's a bummer that prettier can't adopt spaces after function names though. Seems like the only major incompatibility between prettier and standard left. Spaces after function names are so obviously correct from a consistency stand point, but I guess they're sticking with popularity on that one.

@tunnckoCore

This comment has been minimized.

Copy link

commented Feb 28, 2019

@NathanielHill: Spaces after function names are so obviously correct from a consistency stand point

Same was here. But I switched around 1.5 year ago (after years of using Standard) to the @airbnb style - definitely liked it and it makes much more sense to me, cuz I always been a fan of a bit more strictness (pretty great considerations/practices and a lot lot rules).

Looking from the perspective of a few years using both Airbnb+Prettier (~2y) and Standard (2y), I really think that tools like standard, xo and the others that appeared after them, isn't that great thing. It sounds and feels unnecessary stacking of tooling, APIs and deps.

"Zero config". But you can have zero config with picking up basic eslint and preset of your choice (or your own), or just throw the most popular ones - airbnb / standard / prettier, as configs.

Anyway, no bad feelings 🥇 It's probably great from someone who is junior-to-mid or just starting up until realizing he/she (or its community) need better style and quality.

@KidkArolis

This comment has been minimized.

Copy link

commented Feb 28, 2019

@tunnckoCore with airbnb, does airbnb code style rules not complain about prettier’s formatting? Or do you turn them off somehow?

Re, “it’s probably great for someone who is junior-to-mid”, a strange way to classify this. Since so many many people and tools use standard who I wouldn’t call junior.. And I have been using standard 5+ years because of its ease of use, when you work on dozens of repos, the zero config approach shines, one dep, does it all, helps you catch the bugs, is not too strict so never complains about things that would get in the way. But admittedly, I actually never really tried airbnb, there’s just not enough time to try all the things :)

@NathanielHill

This comment has been minimized.

Copy link

commented Feb 28, 2019

@tunnckoCore I loved standard as well. My main problem was just that it's not opinionated enough! I was getting tired of the mental overhead of dealing with style inconsistencies. It sounds silly, but it's really non-trivial over a large code base. Especially, writing as you are constantly exerting mental overhead to at least try to be consistent. Now that I've got my linting working again (50% of the benefit for me is just catching typos in real time) I'm loving how much less I have to think about styling with prettier 👍

@stale

This comment has been minimized.

Copy link

commented May 29, 2019

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

@stale stale bot added the stale label May 29, 2019

@ArmorDarks

This comment has been minimized.

Copy link

commented May 29, 2019

Not a nice bot

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.