-
-
Notifications
You must be signed in to change notification settings - Fork 502
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
fix(linter)!: override plugins array when passed in config file #7303
fix(linter)!: override plugins array when passed in config file #7303
Conversation
Your org has enabled the Graphite merge queue for merging into mainAdd the label “0-merge” to the PR and Graphite will automatically add it to the merge queue when it’s ready to merge. Or use the label “hotfix” to add to the merge queue as a hot fix. You must have a Graphite account and log in to Graphite in order to use the merge queue. Sign up using this link. |
CodSpeed Performance ReportMerging #7303 will create unknown performance changesComparing Summary
Benchmarks breakdown
|
226dba0
to
be13ed4
Compare
Thanks for working on this. ❤️ With the new overrides property there is a new discussion to make :)
with this config I expect to enable ts and react plugin for |
if i specify an empty array. but have a rule in the rules list that uses a plugin does it get reported as an unknown rule? |
That is a also a topic 👍 Let not block this PR, perrsonally im fine at the moment.
existing rules in the project should always be known and can be enabled/disabled in the rules block. That what I expect as a user, don't know what the core team says about it :) |
Good point, I forgot to consider the
Yes, I think this should report as an unknown/disabled rule warning. I can imagine a case where you remove a plugin that is no longer needed and want to be warned of config that is no longer useful. Or, like in the case above with overrides, you need to explicitly enable the plugin to use the rule. |
Feels for me too, but I do not know how it is currently with |
I checked the behavior with the legacy {
"plugins": ["@typescript-eslint"],
"overrides": [
{
"files": ["*.ts", "*.tsx"],
"plugins": ["react"]
}
]
} So, I think this is the way to go for compatibility. And specifying an empty array here does not disable all of the plugins. |
Merge activity
|
- fixes #6896 When the `plugins` config property is specified, it will overwrite the default plugins array. This allows the plugins list to be easily customized and allows for disabling default plugins at the same time as enabling non-default ones. - example: `{ "plugins": [] }` will enable no plugins. - example: `{ }` will enable default plugins. - example: `{ "plugins": ["typescript", "import"] }` will enable only the import and typescript plugins.
be13ed4
to
20d9080
Compare
- fixes #6896 When the `plugins` config property is specified, it will overwrite the default plugins array. This allows the plugins list to be easily customized and allows for disabling default plugins at the same time as enabling non-default ones. - example: `{ "plugins": [] }` will enable no plugins. - example: `{ }` will enable default plugins. - example: `{ "plugins": ["typescript", "import"] }` will enable only the import and typescript plugins.
- fixes #6896 When the `plugins` config property is specified, it will overwrite the default plugins array. This allows the plugins list to be easily customized and allows for disabling default plugins at the same time as enabling non-default ones. - example: `{ "plugins": [] }` will enable no plugins. - example: `{ }` will enable default plugins. - example: `{ "plugins": ["typescript", "import"] }` will enable only the import and typescript plugins.
- fixes #6896 When the `plugins` config property is specified, it will overwrite the default plugins array. This allows the plugins list to be easily customized and allows for disabling default plugins at the same time as enabling non-default ones. - example: `{ "plugins": [] }` will enable no plugins. - example: `{ }` will enable default plugins. - example: `{ "plugins": ["typescript", "import"] }` will enable only the import and typescript plugins.
## [0.12.0] - 2024-11-20 - 20d9080 linter: [**BREAKING**] Override plugins array when passed in config file (#7303) (camchenry) ### Features - 1d9f528 linter: Implement `unicorn/prefer-string-raw` lint rule (#7335) (Ryan Walker) - d445e0f linter: Implement `unicorn/consistent-existence-index-check` (#7262) (Ryan Walker) - 01ddf37 linter: Add `allowReject` option to `no-useless-promise-resolve-reject` (#7274) (no-yan) - 755a31b linter: Support bind function case for compatibility with `promise/no-return-wrap` (#7232) (no-yan) - 428770e linter: Add `import/no-namespace` rule (#7229) (Dmitry Zakharov) - 9c91151 linter: Implement typescript/no-empty-object-type (#6977) (Orenbek) - 2268a0e linter: Support `overrides` config field (#6974) (DonIsaac) - 3dcac1a linter: React/exhaustive-deps (#7151) (camc314) - d3a0119 oxlint: Add `cwd` property to `LintRunner` (#7352) (Alexander S.) ### Bug Fixes - ba0b2ff editor: Reload workspace configuration after change (#7302) (Alexander S.) - bc0e72c linter: Handle user variables correctly for import/no_commonjs (#7316) (Dmitry Zakharov) - bf839c1 linter: False positive in `jest/expect-expect` (#7341) (dalaoshu) - ff2a1d4 linter: Move `exhaustive-deps` to `react` (#7251) (camc314) - df5c535 linter: Revert unmatched rule error (#7257) (Cameron A McHenry) - c4ed230 linter: Fix false positive in eslint/no-cond-assign (#7241) (camc314) - ef847da linter: False positive in `jsx-a11y/iframe-has-title` (#7253) (dalaoshu) - 62b6327 linter: React/exhaustive-deps update span for unknown deps diagnostic (#7249) (camc314) ### Documentation - 4c124a8 editor/vscode: Update VS Code readme with installation instructions and available features (#7306) (Nicholas Rayburn) ### Refactor - c6a4868 linter: Temporarily remove unknown rules checking (#7260) (camchenry) ### Testing - 5190b7f editor: Add test setup (#7361) (Alexander S.) Co-authored-by: Boshen <1430279+Boshen@users.noreply.github.com>
When the
plugins
config property is specified, it will overwrite the default plugins array. This allows the plugins list to be easily customized and allows for disabling default plugins at the same time as enabling non-default ones.{ "plugins": [] }
will enable no plugins.{ }
will enable default plugins.{ "plugins": ["typescript", "import"] }
will enable only the import and typescript plugins.