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
📈 Tracking: Flat Config support #18093
Comments
What counts as “supported”? eslint-plugin-simple-import-sort is currently marked as “❌ Not supported; no issue filed”. I got curious and tried to use it with this flat config: import simpleImportSort from "eslint-plugin-simple-import-sort";
export default [
{
plugins: {
"simple-import-sort": simpleImportSort,
},
rules: {
"simple-import-sort/imports": "error",
"simple-import-sort/exports": "error",
}
}
]; It worked! What does it take to earn the precious ✅ emoji? |
@lydell in your case you're pretty close already because the plugin provides no configs, no processors, no globals, etc. Your plugin will "just work" in flat configs because of that. The only thing you're really missing is plugin metadata: https://eslint.org/docs/latest/extend/plugin-migration-flat-config#adding-plugin-meta-information |
xo does not support it yet: xojs/xo#702 |
Another level of "support" is for the ESLint plugin packages to have TypeScript types. I intend to have type-safe ESLint flat config in my projects, and many ESLint plugins currently don't publish types for their exports, because before flat config it was ESLint that was importing the modules, instead of consumers in their projects. Some plugin packages that export types are broken for TypeScript in It would be great if the tracking table in this issue description were to have another status column for TypeScript support. |
Thanks a great idea @jaydenseric, adding now! (sorry for the delay) I'm also adding |
Hi, I created a PR to support flat config at eslint-plugin-mocha repository: lo1tuma/eslint-plugin-mocha#349 EDIT: The PR was merged and shipped as eslint-plugin-mocha 10.4.0. |
Would be good to get eslint-community/eslint-utils#183 / eslint-community/eslint-utils#186 in there as well, as it may be a blocker for quite a few other modules |
Can |
What's the officially suggested peer-dependency range for someone who wants to support eg. ESLint 8 and later, including pre-releases of ESLint 9? I think the algorithm for npm is what causes some struggles with some here: npm/rfcs#397 (comment) And as I wrote in eslint-community/eslint-utils#183 (comment), I think |
FYI, that plugin was renamed to |
Would it be possible to also track eslint 9 compatibility in this list ? |
This comment was marked as outdated.
This comment was marked as outdated.
|
I have multiple ESLint plugins I created. Is there an easy way to just convert them to flat config? https://github.com/nirtamir2/eslint-plugin-sort-export-all (over 10k downloads per week) I'm open to contributions if someone wants to help me 🙏 |
@JoshuaKGoldberg This is one of the most impressive feats I've seen on GitHub and I applaud your efforts. Many thanks. Also, I’d like to echo what @vincentbriglia said about adding ESLint 9 compatibility to the list. It’s great if they decide to support the flat config, but if their |
Good question. I think the tricky bit is that it changes based on what parser & types system the plugin is built on: vanilla JS, typescript-eslint TS, jsonc-eslint-parser JSON, etc. I know docs for the TS side are tracked in typescript-eslint/typescript-eslint#5444; the others would be separate issues I think.
TIL! I tried it out locally and it seemed to work. I'm not a Sublime user, so not confident - someone should mention if we're missing something. Thanks!
✨ https://eslint.org/docs/latest/extend/plugin-migration-flat-config! ✨ For other questions on converting, I'd suggest asking in a separate ESLint asking-for-help format such as the Discord's
I like that idea. Let me go back and ask the ESLint team about it. To my knowledge, this issue is the first time a tracking table like this one was made. |
Would it be possible to add npm eslint-plugin-no-use-extend-native with tracking issue dustinspecker/eslint-plugin-no-use-extend-native#136 ? |
@jlarmstrongiv Out of curiosity: is it even maintained? the last version was published ~4 years ago! |
It may not be maintained but it sure is popular. |
I've just merged and release flat support for eslint-plugin-vuejs-accessibility in version |
Voila: #18391. Good idea! Note that #18391 only tracks plugins that already have flat config support. I didn't want that table to become a superset of this one - that'd be harder to read and also harder to maintain. So that table has a much higher percentage of ✅s than this one. 😄 I also added a small note to the bottom of each post: these aren't automatically updated. I just update them every time I'm pinged, or when I have spare minutes a few times a week. If something gets out-of-date for more than a couple of days, please do post a note here and we'll get that updated. 🚀 |
It's worth noting that since #18087 is a blocker for the import plugin, it's also a blocker for the airbnb and airbnb-base configs (the latter of which isn't in the table yet), and for the react and jsx-a11y plugins. |
@ljharb just to clarify: why does it also block the |
oh actually you're right, that's about blocking v9 support, not about flat config. |
@controversial yes, but eslint hasn't shipped that yet, and seemingly won't until i'm able to confirm that approach would work. |
@ljharb oh yeah - that makes sense. so to my understanding,
|
Yes, except for the last step - i'm not shipping any breaking changes, so v9 support would be additive. |
@JoshuaKGoldberg I think you might have the wrong issue for |
👋 Hi all! With flat config stabilized and ESLint v9 on the horizon, many community plugins are adding native support for flat config. The Configuration Migration Guide provides docs on how to do that.
This is a tracking issue of the
~50~65 or so most popular community integrations and plugins for ESLint. We'll keep this list updated over time.📌 Status and Types emoji key:
@graphql-eslint
@nuxt/eslint
@react-native-community
@typescript-eslint
angular
astro
compat
cypress
deprecation
ember
es-x
eslint-comments
eslint-plugin
functional
import
import-x
jsdoc
jsonc
jest
jest-formatting
jsx-expressions
jsx-ally
markdown
mocha
n
next
nx
perfectionist
playwright
prettier
promise
qunit
regexp
react-hooks
react
react-native
security
simple-import-sort
solid
sonarjs
storybook
stylistic
svelte
tailwindcss
testing-library
unicorn
vitest
vue
vue-i18n
vuejs-accessibility
wdio
yml
airbnb
airbnb-typescript
canonical
prettier
standard
3d1284
standard-with-typescript
@rushstack/eslint-patch
@types/eslint
create-config
eslint-find-rules
eslint-utils
xo
Task list of issues/PRs on projects that didn't have released support yet at time of filing:
eslint-config-next
in flat config vercel/next.js#58411Keep in mind that this list isn't automatic: I'm hand-editing it. Please report any inaccuracies or out-of-date information! ❤️
The text was updated successfully, but these errors were encountered: