use standard formatter #128
Comments
👍 |
Cool :) PR it? :) On Wed, Jul 1, 2015 at 12:04 PM, Sylvain Utard notifications@github.com
Alexandre Stanislawski |
I will! |
Thanks :)
|
So This will be a good first pass but we will move to http://jscs.info/ soon so that we end style conversations for good! |
Oh good, one style guide to rule them all. I'm in favor of that. For jscs, we could just use one of the predefined style guide (AirBnB for example) and move on. |
Following #128 and various discussions we already had on code style, I implemented `algolia-standard` in the project. The goal of this PR is to provide a solid ground for an easy linter that we can use on all our projects. The currently picked coding style is the one from Airbnb, with modifications. You can find the rules here: https://github.com/algolia/standard#rules We can discuss the rules of course as long as we do not discuss them every week! Other projects: - Original feross/standard: After trying it I discovered some rules were not strict enough and would lead to again style discussions. Has some sort of formatter but not very good. - JSCS: I tried JSCS: good but only oriented on style, no rules on unused variables or ways to prevent bugs like eslint does. Has some sort of formatter, but not very good. Ultimately eslint will have a good formatter, in the meantime we will all switch to some new coding style, for good :-)? fixes #128
Following #128 and various discussions we already had on code style, I implemented `algolia-standard` in the project. The goal of this PR is to provide a solid ground for an easy linter that we can use on all our projects. The currently picked coding style is the one from Airbnb, with modifications. You can find the rules here: https://github.com/algolia/standard#rules We can discuss the rules of course as long as we do not discuss them every week! Other projects: - Original feross/standard: After trying it I discovered some rules were not strict enough and would lead to again style discussions. Has some sort of formatter but not very good. - JSCS: I tried JSCS: good but only oriented on style, no rules on unused variables or ways to prevent bugs like eslint does. Has some sort of formatter, but not very good. Ultimately eslint will have a good formatter, in the meantime we will all switch to some new coding style, for good :-)? fixes #128
No convinced by JSCS nor standard so I forked standard just like uber did for instance https://github.com/uber/standard. |
What are your arguments against standard or JSCS? (just curious) |
Following #128 and various discussions we already had on code style, I configured our lint on airbnb/javascript style guide using eslint. I chose to stay with ESLint because: - it's becoming a good linting standard and has the best support for both ES6, jsx, react.. - already what we know, do not have to change again - other alternatives were not as good as what we wanted Not a single linter has a "Automatically reformat this whole code option, do it well". ESLint has some wishes for ESLint 2.0 but may be later. In the end we will struggle a little bit on following our own Algolia style at the begining but it will be worth it soon as we will be more and more JavaScript`er. I recall @bobylito wanting to do so early on when we both joined. Well, now it's time! The goal of this PR is to provide a solid ground for our linting rules amongst all our JS projects. The currently picked coding style is the one from Airbnb, with modifications. You can find the modified rules here: https://github.com/algolia/eslint-config-algolia#rules One of the not so obvious rule is the semi colon remove, I was convinced by https://github.com/feross/standard#rules and https://github.com/yyx990803/semi#but-semicolons-are-required I assume there are some rules like spacing aroud parentheses and brackets that will be a big change for you @bobylito (and it's your project so I am dropping your name here!) But we need to try to find a style that is both OUR style and also will not give our future open source contributors too much WTF moments when encountering our style. On this subject, http://sideeffect.kr/popularconvention/#javascript is a good data based source. We can discuss, add, remove, edit the rules as long as we do not discuss them every week! Other projects: - Original feross/standard: After trying it I discovered some rules were not strict enough and would lead to again style discussions. Has some sort of formatter but not very good. Based on eslint. Ref: - standard/standard#180 - JSCS: I tried JSCS: good but only oriented on style, no rules on unused variables or ways to prevent bugs like eslint does. Has some sort of formatter, but not very good. Ultimately eslint will have a good formatter, in the meantime we will all switch to some new coding style, for good :-)? fixes #128
So I have detailed pro/cons and whys in #134 |
Following #128 and various discussions we already had on code style, I configured our lint on airbnb/javascript style guide using eslint. I chose to stay with ESLint because: - it's becoming a good linting standard and has the best support for both ES6, jsx, react.. - already what we know, do not have to change again - other alternatives were not as good as what we wanted Not a single linter has a "Automatically reformat this whole code option, do it well". ESLint has some wishes for ESLint 2.0 but may be later. In the end we will struggle a little bit on following our own Algolia style at the begining but it will be worth it soon as we will be more and more JavaScript`er. I recall @bobylito wanting to do so early on when we both joined. Well, now it's time! The goal of this PR is to provide a solid ground for our linting rules amongst all our JS projects. The currently picked coding style is the one from Airbnb, with modifications. You can find the modified rules here: https://github.com/algolia/eslint-config-algolia#rules One of the not so obvious rule is the semi colon remove, I was convinced by https://github.com/feross/standard#rules and https://github.com/yyx990803/semi#but-semicolons-are-required I assume there are some rules like spacing aroud parentheses and brackets that will be a big change for you @bobylito (and it's your project so I am dropping your name here!) But we need to try to find a style that is both OUR style and also will not give our future open source contributors too much WTF moments when encountering our style. On this subject, http://sideeffect.kr/popularconvention/#javascript is a good data based source. We can discuss, add, remove, edit the rules as long as we do not discuss them every week! Other projects: - Original feross/standard: After trying it I discovered some rules were not strict enough and would lead to again style discussions. Has some sort of formatter but not very good. Based on eslint. Ref: - standard/standard#180 - JSCS: I tried JSCS: good but only oriented on style, no rules on unused variables or ways to prevent bugs like eslint does. Has some sort of formatter, but not very good. Ultimately eslint will have a good formatter, in the meantime we will all switch to some new coding style, for good :-)? fixes #128
Following #128 and various discussions we already had on code style, I configured our lint on airbnb/javascript style guide using eslint. I chose to stay with ESLint because: - it's becoming a good linting standard and has the best support for both ES6, jsx, react.. - already what we know, do not have to change again - other alternatives were not as good as what we wanted Not a single linter has a "Automatically reformat this whole code option, do it well". ESLint has some wishes for ESLint 2.0 but may be later. In the end we will struggle a little bit on following our own Algolia style at the begining but it will be worth it soon as we will be more and more JavaScript`er. I recall @bobylito wanting to do so early on when we both joined. Well, now it's time! The goal of this PR is to provide a solid ground for our linting rules amongst all our JS projects. The currently picked coding style is the one from Airbnb, with modifications. You can find the modified rules here: https://github.com/algolia /eslint-config-algolia#rules I assume there are some rules like spacing aroud parentheses and brackets that will be a big change for you @bobylito (and it's your project so I am dropping your name here!) But we need to try to find a style that is both OUR style and also will not give our future open source contributors too much WTF moments when encountering our style. On this subject, http://sideeffect.kr/popularconvention/#javascript is a good data based source. We can discuss, add, remove, edit the rules as long as we do not discuss them every week! Other projects: - Original feross/standard: After trying it I discovered some rules were not strict enough and would lead to again style discussions. Has some sort of formatter but not very good. Based on eslint. Ref: - standard/standard#180 - JSCS: I tried JSCS: good but only oriented on style, no rules on unused variables or ways to prevent bugs like eslint does. Has some sort of formatter, but not very good. Ultimately eslint will have a good formatter, in the meantime we will all switch to some new coding style, for good :-)? fixes #128
Following #128 and various discussions we already had on code style, I configured our lint on airbnb/javascript style guide using eslint. I chose to stay with ESLint because: - it's becoming a good linting standard and has the best support for both ES6, jsx, react.. - already what we know, do not have to change again - other alternatives were not as good as what we wanted Not a single linter has a "Automatically reformat this whole code option, do it well". ESLint has some wishes for ESLint 2.0 but may be later. In the end we will struggle a little bit on following our own Algolia style at the begining but it will be worth it soon as we will be more and more JavaScript`er. I recall @bobylito wanting to do so early on when we both joined. Well, now it's time! The goal of this PR is to provide a solid ground for our linting rules amongst all our JS projects. The currently picked coding style is the one from Airbnb, with modifications. You can find the modified rules here: https://github.com/algolia /eslint-config-algolia#rules I assume there are some rules like spacing aroud parentheses and brackets that will be a big change for you @bobylito (and it's your project so I am dropping your name here!) But we need to try to find a style that is both OUR style and also will not give our future open source contributors too much WTF moments when encountering our style. On this subject, http://sideeffect.kr/popularconvention/#javascript is a good data based source. We can discuss, add, remove, edit the rules as long as we do not discuss them every week! Other projects: - Original feross/standard: After trying it I discovered some rules were not strict enough and would lead to again style discussions. Has some sort of formatter but not very good. Based on eslint. Ref: - standard/standard#180 - JSCS: I tried JSCS: good but only oriented on style, no rules on unused variables or ways to prevent bugs like eslint does. Has some sort of formatter, but not very good. Ultimately eslint will have a good formatter, in the meantime we will all switch to some new coding style, for good :-)? fixes #128
was done |
Following algolia/algoliasearch-helper-js#128 and various discussions we already had on code style, I configured our lint on airbnb/javascript style guide using eslint. I chose to stay with ESLint because: - it's becoming a good linting standard and has the best support for both ES6, jsx, react.. - already what we know, do not have to change again - other alternatives were not as good as what we wanted Not a single linter has a "Automatically reformat this whole code option, do it well". ESLint has some wishes for ESLint 2.0 but may be later. In the end we will struggle a little bit on following our own Algolia style at the begining but it will be worth it soon as we will be more and more JavaScript`er. I recall @bobylito wanting to do so early on when we both joined. Well, now it's time! The goal of this PR is to provide a solid ground for our linting rules amongst all our JS projects. The currently picked coding style is the one from Airbnb, with modifications. You can find the modified rules here: https://github.com/algolia /eslint-config-algolia#rules I assume there are some rules like spacing aroud parentheses and brackets that will be a big change for you @bobylito (and it's your project so I am dropping your name here!) But we need to try to find a style that is both OUR style and also will not give our future open source contributors too much WTF moments when encountering our style. On this subject, http://sideeffect.kr/popularconvention/#javascript is a good data based source. We can discuss, add, remove, edit the rules as long as we do not discuss them every week! Other projects: - Original feross/standard: After trying it I discovered some rules were not strict enough and would lead to again style discussions. Has some sort of formatter but not very good. Based on eslint. Ref: - standard/standard#180 - JSCS: I tried JSCS: good but only oriented on style, no rules on unused variables or ways to prevent bugs like eslint does. Has some sort of formatter, but not very good. Ultimately eslint will have a good formatter, in the meantime we will all switch to some new coding style, for good :-)? fixes algolia/algoliasearch-helper-js#128
To end issues about style and stop having to reformat every line of code written by different people, we could use the
standard
formatter: https://github.com/feross/standardI would be happy to switch all our JavaScript projects to standard format and start building things the fastest way instead of wrapping our mind and our code to the current project lead preferences.
So that you never find yourself contributing to an Algolia project and using your valuable time to align things, put a space there and there, remove a space there, fight with parenthesis, brackets, equals.
A good number of projects are using standard, including the whole npm codebase.
What do you think?
The text was updated successfully, but these errors were encountered: