feat: support flat config#330
Conversation
There was a problem hiding this comment.
for flat config, ecmaFeatures option is not added. Because the parser options should be specified by the user. especially, jsx: true should be supported by plugins like eslint-plugin-react, as mentioned in the eslint documentation.
https://eslint.org/docs/latest/use/configure/language-options#specifying-parser-options
BTW, ecmaFeatures for flat config built-in on the plugin side will cause eslint to output an error as shown below, so we cannot set them built-in:
Error: Key "languageOptions": Unexpected key "ecmaFeatures" found.
at ObjectSchema.validate (/path/to/oss/tailwind/eslint-plugin-tailwindcss/tests/integrations/flat-config/node_modules/@humanwhocodes/object-schema/src/object-schema.js:287:23)
at /path/to/oss/tailwind/eslint-plugin-tailwindcss/tests/integrations/flat-config/node_modules/@humanwhocodes/object-schema/src/object-schema.js:239:18
at Array.reduce (<anonymous>)
at ObjectSchema.merge (/path/to/oss/tailwind/eslint-plugin-tailwindcss/tests/integrations/flat-config/node_modules/@humanwhocodes/object-schema/src/object-schema.js:237:24)
at /path/to/oss/tailwind/eslint-plugin-tailwindcss/tests/integrations/flat-config/node_modules/@humanwhocodes/config-array/api.js:935:42
at Array.reduce (<anonymous>)
at FlatConfigArray.getConfig (/path/to/oss/tailwind/eslint-plugin-tailwindcss/tests/integrations/flat-config/node_modules/@humanwhocodes/config-array/api.js:934:39)
at FlatConfigArray.isFileIgnored (/path/to/oss/tailwind/eslint-plugin-tailwindcss/tests/integrations/flat-config/node_modules/@humanwhocodes/config-array/api.js:962:15)
at /path/to/oss/tailwind/eslint-plugin-tailwindcss/tests/integrations/flat-config/node_modules/eslint/lib/eslint/eslint-helpers.js:504:38
at Array.forEach (<anonymous>)
There was a problem hiding this comment.
Aren’t ecmaFeatures supported in languageOptions.parserOptions?
{
+ languageOptions: {
+ parserOptions: {
+ ecmaFeatures: {
+ jsx: true,
+ },
+ },
+ },
plugins: {
get tailwindcss() {
return require('../index');
},
},
},ref: https://eslint.org/docs/latest/use/configure/configuration-files-new#configuration-objects
There was a problem hiding this comment.
Thanks!
oh, I've apparently mis-read the config docs, and I found that it is possible with flat config.
|
|
||
| module.exports = [ | ||
| { | ||
| name: 'tailwindcss:base', |
There was a problem hiding this comment.
about name, see the here
We can check flat config with eslint config inspector

|
Is this close to being merged in and part of a new release? If there is any work that still needs to be done, I'd be willing to jump on it. I'm transitioning my projects to eslint v9 and I'll gladly help if that means this plugin can support v9 sooner. |
…lwindcss into feat/flat-config
|
Hi @kazupon, I also published a new beta release which includes your changes: Do you understand why the tests are failing in the CICD ? I get an error, also on my local machine:
|
|
@francoismassart eslint-plugin-tailwindcss/tests/lib/rules/no-custom-classname.js Lines 436 to 446 in 4d04a96 I'll check to see if my changes broke any |
|
Hi! @francoismassart And ESLints were outputting API compatibility warnings. |
|
Great, thank you @kazupon, I published a new beta version: |
|
@francoismassart |
support flat config
Description
Fixes #280
This PR supports flat config.
It is also compatible with existing configs.
Type of change
How Has This Been Tested?
tests/integrations/flat-config)tests/integrations/legacy-config)Test Configuration:
Checklist: