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
chore: enable some rules from eslint-plugin-unicorn internally #15878
Conversation
✅ Deploy Preview for docs-eslint canceled.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Just one slight related improvement.
I think the rules such as on preferring simpler array methods make for cleaner code, and I wouldn't expect newcomers to have a hard time understanding the whys and wherefores of the rule (and they have auto-fixers).
The preferring Set
rule comes at the cost of a little more verbosity, but IIRC, we noticed some significant performance improvements in eslint-plugin-jsdoc
upon making such changes.
Co-authored-by: Brett Zamir <brettz9@yahoo.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Given that these are fixable, I’m ok with it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [eslint](https://eslint.org) ([source](https://github.com/eslint/eslint)) | devDependencies | minor | [`8.15.0` -> `8.16.0`](https://renovatebot.com/diffs/npm/eslint/8.15.0/8.16.0) | --- ### Release Notes <details> <summary>eslint/eslint</summary> ### [`v8.16.0`](https://github.com/eslint/eslint/releases/tag/v8.16.0) [Compare Source](eslint/eslint@v8.15.0...v8.16.0) #### Features - [`cab0c22`](eslint/eslint@cab0c22) feat: add Unicode flag suggestion in no-misleading-character-class ([#​15867](eslint/eslint#15867)) (Milos Djermanovic) - [`38ae956`](eslint/eslint@38ae956) feat: check Unicode code point escapes in no-control-regex ([#​15862](eslint/eslint#15862)) (Milos Djermanovic) - [`ee69cd3`](eslint/eslint@ee69cd3) feat: Update global variables ([#​15871](eslint/eslint#15871)) (Sébastien Règne) #### Bug Fixes - [`3f09aab`](eslint/eslint@3f09aab) fix: function-paren-newline crash on "new new Foo();" ([#​15850](eslint/eslint#15850)) (coderaiser) #### Documentation - [`050d5f4`](eslint/eslint@050d5f4) docs: Static further reading links ([#​15890](eslint/eslint#15890)) (Nicholas C. Zakas) - [`36287c0`](eslint/eslint@36287c0) docs: fix absolute paths in related rules shortcode to work from /docs ([#​15892](eslint/eslint#15892)) (Milos Djermanovic) - [`90b6990`](eslint/eslint@90b6990) docs: fix absolute links in rule macro to work from /docs ([#​15891](eslint/eslint#15891)) (Milos Djermanovic) - [`f437249`](eslint/eslint@f437249) docs: Adjust docs site path prefix ([#​15889](eslint/eslint#15889)) (Nicholas C. Zakas) - [`6e16025`](eslint/eslint@6e16025) docs: update 'Related Rules' and 'Further Reading' in remaining rules ([#​15884](eslint/eslint#15884)) (Milos Djermanovic) - [`1d39f69`](eslint/eslint@1d39f69) docs: remove confusing examples for no-mixed-operators ([#​15875](eslint/eslint#15875)) (Milos Djermanovic) - [`3071d76`](eslint/eslint@3071d76) docs: Fix some grammar issues ([#​15837](eslint/eslint#15837)) (byodian) #### Chores - [`1768d0d`](eslint/eslint@1768d0d) chore: upgrade [@​eslint/eslintrc](https://github.com/eslint/eslintrc)[@​1](https://github.com/1).3.0 ([#​15903](eslint/eslint#15903)) (Milos Djermanovic) - [`c686e4c`](eslint/eslint@c686e4c) chore: Add deploy workflow for docs site ([#​15894](eslint/eslint#15894)) (Nicholas C. Zakas) - [`c7894cd`](eslint/eslint@c7894cd) chore: enable some rules from eslint-plugin-unicorn internally ([#​15878](eslint/eslint#15878)) (Bryan Mishkin) - [`ea65cb5`](eslint/eslint@ea65cb5) chore: upgrade eslint-plugin-eslint-plugin@^4.2.0 ([#​15882](eslint/eslint#15882)) (唯然) - [`cc29c69`](eslint/eslint@cc29c69) chore: Upgrade official GitHub actions to latest versions ([#​15880](eslint/eslint#15880)) (Darius Dzien) - [`5891c75`](eslint/eslint@5891c75) chore: Refactor rule docs format ([#​15869](eslint/eslint#15869)) (Nicholas C. Zakas) </details> --- ### Configuration 📅 **Schedule**: At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox. --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). Co-authored-by: cabr2-bot <cabr2.help@gmail.com> Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1366 Reviewed-by: 6543 <6543@noreply.codeberg.org> Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org> Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
…t#15878) * chore: add eslint-plugin-unicorn internally * Update tests/lib/rules/no-invalid-this.js Co-authored-by: Brett Zamir <brettz9@yahoo.com> Co-authored-by: Brett Zamir <brettz9@yahoo.com>
eslint#15878)" This reverts commit bfa3545.
Prerequisites checklist
What is the purpose of this pull request? (put an "X" next to an item)
[ ] Documentation update
[ ] Bug fix (template)
[ ] New rule (template)
[ ] Changes an existing rule (template)
[ ] Add autofix to a rule
[ ] Add a CLI option
[ ] Add something to the core
[x] Other, please explain: Enable some rules from eslint-plugin-unicorn internally / in eslint-config-eslint
What changes did you make? (Give an overview)
eslint-plugin-unicorn is a hugely popular eslint plugin (> 1M weekly downloads, > 100 contributors) with 100+ powerful rules focused especially on encouraging modern JavaScript coding practices. Disclaimer: I have contributed to this plugin and am listed as one of its maintainers.
A previous PR by @brettz9 (#15731) attempted to add most of the
unicorn/recommended
configuration from this plugin. This was rejected because theunicorn/recommended
configuration contains many rules that could be considered too aggressive or stylistic and it was worried that frequent changes to this large configuration could become a maintenance burden.One suggestion coming out of the previous PR was to focus on enabling a smaller set of rules, and that is what I am doing now. I have specifically chosen a small set of rules that should be minimally-controversial and clear in their benefit. In particular, the rules I have chosen are mostly focused on using more readable/efficient string/array functions, and they are all autofixable.
This enables us to get some core unicorn linting in place now, and then potentially build off of that later. If someone wants to enable additional unicorn linting, they can open separate PRs for individual consideration/discussion.
One of the rules being enabled (unicorn/prefer-string-trim-start-end) will automate the cleanup from this earlier PR:
trimLeft
/trimRight
withtrimStart
/trimEnd
#15750Is there anything you'd like reviewers to focus on?