Repository: vuejs/eslint-plugin-vue
Pull request #2436 (2024-03-25 02:47:48)

Change flat config to an array to accept `*.vue`
This PR changes the flat config to an array to accept `*.vue` extensions.

I noticed that using the following flat config I receive the following message:

> File ignored because of a matching ignore pattern. Use "--no-ignore" to disable file ignore settings or use "--no-warn-ignored" to suppress this warning.

```js
const plugin = require('eslint-plugin-vue')
module.exports = [
  plugin.configs['flat/base'],
  {
    rules: {
      'vue/no-duplicate-attributes': 'error'
    }
  }
]
```

I think this is because the flat config does not include the `*.vue` extension in `files`.

I was thinking of adding `files: ['*.vue']` to all configs, but that doesn't work because some of the rules of this plugin can also be used in `*.js` files. Therefore, we added `files: ['*.vue']` only to the config that has a parser and modified it to provide the config as an array.

@aladdin-add  I would like to hear your opinion if possible.

aladdin-add: I always like to export an object (if possible). the usage can be like:

```js
const plugin = require('eslint-plugin-vue');

module.exports = [
  {files: ["**/*.js", "**/*.vue"], plugin.configs['flat/base']},
];
```

If you export the array format it will be difficult for the user to combine them, e.g. to add "*.ts".
ota-meshi: I think that the only way to properly specify the extension to apply the configuration provided in the array is as follows.

```js
const plugin = require('eslint-plugin-vue');
module.exports = [
  ...plugin.configs['flat/base'].map((config) => ({
    ...config,
    files: ["**/*.js", "**/*.vue"]
  })),
]
```

I agree that objects are easier to handle, but I don't think it's possible in this case 🤔 
ota-meshi: Thank you for the review! I have fixed the documentation.

Patch:
diff --git a/docs/.vitepress/vite-plugin.mts b/docs/.vitepress/vite-plugin.mts
index fd0644ed..ba1ca7db 100644
--- a/docs/.vitepress/vite-plugin.mts
+++ b/docs/.vitepress/vite-plugin.mts
@@ -65,7 +65,7 @@ function transformRequire(code: string) {
         id += Math.random().toString(32).substring(2)
       }
       modules.set(id, moduleString)
-      return id
+      return id + '()'
     }
   )
 
@@ -73,7 +73,7 @@ function transformRequire(code: string) {
     [...modules]
       .map(([id, moduleString]) => {
         return `import * as __temp_${id} from ${moduleString};
-const ${id} = __temp_${id}.default || __temp_${id};
+const ${id} = () => __temp_${id}.default || __temp_${id};
 `
       })
       .join('') +
diff --git a/docs/rules/attribute-hyphenation.md b/docs/rules/attribute-hyphenation.md
index 5c2de002..d5fba2e3 100644
--- a/docs/rules/attribute-hyphenation.md
+++ b/docs/rules/attribute-hyphenation.md
@@ -10,7 +10,7 @@ since: v3.9.0
 
 > enforce attribute naming style on custom components in template
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/attributes-order.md b/docs/rules/attributes-order.md
index a9cf4728..366f134b 100644
--- a/docs/rules/attributes-order.md
+++ b/docs/rules/attributes-order.md
@@ -10,7 +10,7 @@ since: v4.3.0
 
 > enforce order of attributes
 
-- :gear: This rule is included in `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/comment-directive.md b/docs/rules/comment-directive.md
index b95f3166..9bc227a6 100644
--- a/docs/rules/comment-directive.md
+++ b/docs/rules/comment-directive.md
@@ -10,7 +10,7 @@ since: v4.1.0
 
 > support comment-directives in `<template>`
 
-- :gear: This rule is included in all of `"plugin:vue/base"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-essential"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/base"`, `*.configs["flat/base"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/recommended"`, `*.configs["flat/vue2-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 Sole purpose of this rule is to provide `eslint-disable` functionality in the `<template>` and in the block level.
 It supports usage of the following comments:
diff --git a/docs/rules/component-definition-name-casing.md b/docs/rules/component-definition-name-casing.md
index c650f88b..5730e9bb 100644
--- a/docs/rules/component-definition-name-casing.md
+++ b/docs/rules/component-definition-name-casing.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > enforce specific casing for component definition name
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 Define a style for component definition name casing for consistency purposes.
diff --git a/docs/rules/component-tags-order.md b/docs/rules/component-tags-order.md
index 8e41558f..d7688981 100644
--- a/docs/rules/component-tags-order.md
+++ b/docs/rules/component-tags-order.md
@@ -11,7 +11,7 @@ since: v6.1.0
 > enforce order of component top-level elements
 
 - :no_entry_sign: This rule was **deprecated** and replaced by [vue/block-order](block-order.md) rule.
-- :gear: This rule is included in `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/first-attribute-linebreak.md b/docs/rules/first-attribute-linebreak.md
index 14f79704..1302adad 100644
--- a/docs/rules/first-attribute-linebreak.md
+++ b/docs/rules/first-attribute-linebreak.md
@@ -10,7 +10,7 @@ since: v8.0.0
 
 > enforce the location of first attribute
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/html-closing-bracket-newline.md b/docs/rules/html-closing-bracket-newline.md
index f47d4ac7..0c7d76ee 100644
--- a/docs/rules/html-closing-bracket-newline.md
+++ b/docs/rules/html-closing-bracket-newline.md
@@ -10,7 +10,7 @@ since: v4.1.0
 
 > require or disallow a line break before tag's closing brackets
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 People have their own preference about the location of closing brackets.
diff --git a/docs/rules/html-closing-bracket-spacing.md b/docs/rules/html-closing-bracket-spacing.md
index 0ab20729..427dce55 100644
--- a/docs/rules/html-closing-bracket-spacing.md
+++ b/docs/rules/html-closing-bracket-spacing.md
@@ -10,7 +10,7 @@ since: v4.1.0
 
 > require or disallow a space before tag's closing brackets
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/html-end-tags.md b/docs/rules/html-end-tags.md
index e0ce5792..5eaca857 100644
--- a/docs/rules/html-end-tags.md
+++ b/docs/rules/html-end-tags.md
@@ -10,7 +10,7 @@ since: v3.0.0
 
 > enforce end tag style
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/html-indent.md b/docs/rules/html-indent.md
index bb8f764f..d152d1cd 100644
--- a/docs/rules/html-indent.md
+++ b/docs/rules/html-indent.md
@@ -10,7 +10,7 @@ since: v3.14.0
 
 > enforce consistent indentation in `<template>`
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/html-quotes.md b/docs/rules/html-quotes.md
index f81ecfa2..9b23a4da 100644
--- a/docs/rules/html-quotes.md
+++ b/docs/rules/html-quotes.md
@@ -10,7 +10,7 @@ since: v3.0.0
 
 > enforce quotes style of HTML attributes
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 You can choose quotes of HTML attributes from:
diff --git a/docs/rules/html-self-closing.md b/docs/rules/html-self-closing.md
index 15d16aa5..b71fb72d 100644
--- a/docs/rules/html-self-closing.md
+++ b/docs/rules/html-self-closing.md
@@ -10,7 +10,7 @@ since: v3.11.0
 
 > enforce self-closing style
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/index.md b/docs/rules/index.md
index ad3d0690..e718603f 100644
--- a/docs/rules/index.md
+++ b/docs/rules/index.md
@@ -34,8 +34,8 @@ Rules in this category are enabled for all presets provided by eslint-plugin-vue
 
 ## Priority A: Essential (Error Prevention)
 
-- :three: Indicates that the rule is for Vue 3 and is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"` presets.
-- :two: Indicates that the rule is for Vue 2 and is included in all of `"plugin:vue/essential"`, `"plugin:vue/strongly-recommended"` and `"plugin:vue/recommended"` presets.
+- :three: Indicates that the rule is for Vue 3 and is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]` presets.
+- :two: Indicates that the rule is for Vue 2 and is included in all of `"plugin:vue/essential"`,`*.configs["flat/vue2-essential"]`, `"plugin:vue/strongly-recommended"`,`*.configs["flat/vue2-strongly-recommended"]` and `"plugin:vue/recommended"`,`*.configs["flat/vue2-recommended"]` presets.
 
 <rules-table>
 
@@ -132,8 +132,8 @@ Rules in this category are enabled for all presets provided by eslint-plugin-vue
 
 ## Priority B: Strongly Recommended (Improving Readability)
 
-- :three: Indicates that the rule is for Vue 3 and is included in `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"` presets.
-- :two: Indicates that the rule is for Vue 2 and is included in `"plugin:vue/strongly-recommended"` and `"plugin:vue/recommended"` presets.
+- :three: Indicates that the rule is for Vue 3 and is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]` presets.
+- :two: Indicates that the rule is for Vue 2 and is included in `"plugin:vue/strongly-recommended"`,`*.configs["flat/vue2-strongly-recommended"]` and `"plugin:vue/recommended"`,`*.configs["flat/vue2-recommended"]` presets.
 
 <rules-table>
 
@@ -169,8 +169,8 @@ Rules in this category are enabled for all presets provided by eslint-plugin-vue
 
 ## Priority C: Recommended (Potentially Dangerous Patterns)
 
-- :three: Indicates that the rule is for Vue 3 and is included in `"plugin:vue/vue3-recommended"` preset.
-- :two: Indicates that the rule is for Vue 2 and is included in `"plugin:vue/recommended"` preset.
+- :three: Indicates that the rule is for Vue 3 and is included in `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]` presets.
+- :two: Indicates that the rule is for Vue 2 and is included in `"plugin:vue/recommended"`,`*.configs["flat/vue2-recommended"]` preset.
 
 <rules-table>
 
diff --git a/docs/rules/jsx-uses-vars.md b/docs/rules/jsx-uses-vars.md
index c3b63d9f..87c6be65 100644
--- a/docs/rules/jsx-uses-vars.md
+++ b/docs/rules/jsx-uses-vars.md
@@ -10,7 +10,7 @@ since: v2.0.0
 
 > prevent variables used in JSX to be marked as unused
 
-- :gear: This rule is included in all of `"plugin:vue/base"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-essential"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/base"`, `*.configs["flat/base"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/recommended"`, `*.configs["flat/vue2-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 Since 0.17.0 the ESLint `no-unused-vars` rule does not detect variables used in JSX ([see details](https://eslint.org/blog/2015/03/eslint-0.17.0-released#changes-to-jsxreact-handling)).
 This rule will find variables used in JSX and mark them as used.
diff --git a/docs/rules/max-attributes-per-line.md b/docs/rules/max-attributes-per-line.md
index 54893a57..84216762 100644
--- a/docs/rules/max-attributes-per-line.md
+++ b/docs/rules/max-attributes-per-line.md
@@ -10,7 +10,7 @@ since: v3.12.0
 
 > enforce the maximum number of attributes per line
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 Limits the maximum number of attributes/properties per line to improve readability.
diff --git a/docs/rules/multi-word-component-names.md b/docs/rules/multi-word-component-names.md
index 154a0e87..4c66961d 100644
--- a/docs/rules/multi-word-component-names.md
+++ b/docs/rules/multi-word-component-names.md
@@ -10,7 +10,7 @@ since: v7.20.0
 
 > require component names to be always multi-word
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/multiline-html-element-content-newline.md b/docs/rules/multiline-html-element-content-newline.md
index dd0a5145..1a55362f 100644
--- a/docs/rules/multiline-html-element-content-newline.md
+++ b/docs/rules/multiline-html-element-content-newline.md
@@ -10,7 +10,7 @@ since: v5.0.0
 
 > require a line break before and after the contents of a multiline element
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/mustache-interpolation-spacing.md b/docs/rules/mustache-interpolation-spacing.md
index 10f1190b..b20e7435 100644
--- a/docs/rules/mustache-interpolation-spacing.md
+++ b/docs/rules/mustache-interpolation-spacing.md
@@ -10,7 +10,7 @@ since: v3.13.0
 
 > enforce unified spacing in mustache interpolations
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/no-arrow-functions-in-watch.md b/docs/rules/no-arrow-functions-in-watch.md
index 6b8147f9..3b04ff8b 100644
--- a/docs/rules/no-arrow-functions-in-watch.md
+++ b/docs/rules/no-arrow-functions-in-watch.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow using arrow functions to define watcher
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-async-in-computed-properties.md b/docs/rules/no-async-in-computed-properties.md
index f780d9a7..34300afe 100644
--- a/docs/rules/no-async-in-computed-properties.md
+++ b/docs/rules/no-async-in-computed-properties.md
@@ -10,7 +10,7 @@ since: v3.8.0
 
 > disallow asynchronous actions in computed properties
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 Computed properties and functions should be synchronous. Asynchronous actions inside them may not work as expected and can lead to an unexpected behaviour, that's why you should avoid them.
 If you need async computed properties you might want to consider using additional plugin [vue-async-computed]
diff --git a/docs/rules/no-child-content.md b/docs/rules/no-child-content.md
index 1aac4f04..c16d2926 100644
--- a/docs/rules/no-child-content.md
+++ b/docs/rules/no-child-content.md
@@ -10,7 +10,7 @@ since: v8.1.0
 
 > disallow element's child contents which would be overwritten by a directive like `v-html` or `v-text`
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :bulb: Some problems reported by this rule are manually fixable by editor [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions).
 
 ## :book: Rule Details
diff --git a/docs/rules/no-computed-properties-in-data.md b/docs/rules/no-computed-properties-in-data.md
index effb5303..35bf62f1 100644
--- a/docs/rules/no-computed-properties-in-data.md
+++ b/docs/rules/no-computed-properties-in-data.md
@@ -10,7 +10,7 @@ since: v7.20.0
 
 > disallow accessing computed properties in `data`.
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-custom-modifiers-on-v-model.md b/docs/rules/no-custom-modifiers-on-v-model.md
index 786f9051..8ec3a031 100644
--- a/docs/rules/no-custom-modifiers-on-v-model.md
+++ b/docs/rules/no-custom-modifiers-on-v-model.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow custom modifiers on v-model used on the component
 
-- :gear: This rule is included in all of `"plugin:vue/essential"`, `"plugin:vue/strongly-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule checks whether `v-model` used on the component do not have custom modifiers.
 
diff --git a/docs/rules/no-deprecated-data-object-declaration.md b/docs/rules/no-deprecated-data-object-declaration.md
index 2dd24425..653ae450 100644
--- a/docs/rules/no-deprecated-data-object-declaration.md
+++ b/docs/rules/no-deprecated-data-object-declaration.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow using deprecated object declaration on data (in Vue.js 3.0.0+)
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/no-deprecated-destroyed-lifecycle.md b/docs/rules/no-deprecated-destroyed-lifecycle.md
index ea9b6d31..a34543b2 100644
--- a/docs/rules/no-deprecated-destroyed-lifecycle.md
+++ b/docs/rules/no-deprecated-destroyed-lifecycle.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow using deprecated `destroyed` and `beforeDestroy` lifecycle hooks (in Vue.js 3.0.0+)
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/no-deprecated-dollar-listeners-api.md b/docs/rules/no-deprecated-dollar-listeners-api.md
index 9016446e..bf1282c6 100644
--- a/docs/rules/no-deprecated-dollar-listeners-api.md
+++ b/docs/rules/no-deprecated-dollar-listeners-api.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow using deprecated `$listeners` (in Vue.js 3.0.0+)
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-deprecated-dollar-scopedslots-api.md b/docs/rules/no-deprecated-dollar-scopedslots-api.md
index 57f7e793..9d7d52a6 100644
--- a/docs/rules/no-deprecated-dollar-scopedslots-api.md
+++ b/docs/rules/no-deprecated-dollar-scopedslots-api.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow using deprecated `$scopedSlots` (in Vue.js 3.0.0+)
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/no-deprecated-events-api.md b/docs/rules/no-deprecated-events-api.md
index 41520cd9..d5fae213 100644
--- a/docs/rules/no-deprecated-events-api.md
+++ b/docs/rules/no-deprecated-events-api.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow using deprecated events api (in Vue.js 3.0.0+)
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-deprecated-filter.md b/docs/rules/no-deprecated-filter.md
index e27f3150..fb2c1e03 100644
--- a/docs/rules/no-deprecated-filter.md
+++ b/docs/rules/no-deprecated-filter.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow using deprecated filters syntax (in Vue.js 3.0.0+)
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-deprecated-functional-template.md b/docs/rules/no-deprecated-functional-template.md
index 82deb75a..4d32f5a7 100644
--- a/docs/rules/no-deprecated-functional-template.md
+++ b/docs/rules/no-deprecated-functional-template.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow using deprecated the `functional` template (in Vue.js 3.0.0+)
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-deprecated-html-element-is.md b/docs/rules/no-deprecated-html-element-is.md
index 4734fab4..84a4bdb2 100644
--- a/docs/rules/no-deprecated-html-element-is.md
+++ b/docs/rules/no-deprecated-html-element-is.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow using deprecated the `is` attribute on HTML elements (in Vue.js 3.0.0+)
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-deprecated-inline-template.md b/docs/rules/no-deprecated-inline-template.md
index 4a4605da..33971883 100644
--- a/docs/rules/no-deprecated-inline-template.md
+++ b/docs/rules/no-deprecated-inline-template.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow using deprecated `inline-template` attribute (in Vue.js 3.0.0+)
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-deprecated-props-default-this.md b/docs/rules/no-deprecated-props-default-this.md
index 6afe1deb..26ae656a 100644
--- a/docs/rules/no-deprecated-props-default-this.md
+++ b/docs/rules/no-deprecated-props-default-this.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow deprecated `this` access in props default function (in Vue.js 3.0.0+)
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-deprecated-router-link-tag-prop.md b/docs/rules/no-deprecated-router-link-tag-prop.md
index c0b77047..e48ff721 100644
--- a/docs/rules/no-deprecated-router-link-tag-prop.md
+++ b/docs/rules/no-deprecated-router-link-tag-prop.md
@@ -10,7 +10,7 @@ since: v7.20.0
 
 > disallow using deprecated `tag` property on `RouterLink` (in Vue.js 3.0.0+)
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-deprecated-scope-attribute.md b/docs/rules/no-deprecated-scope-attribute.md
index 15fc7276..e6a7ec22 100644
--- a/docs/rules/no-deprecated-scope-attribute.md
+++ b/docs/rules/no-deprecated-scope-attribute.md
@@ -10,7 +10,7 @@ since: v6.0.0
 
 > disallow deprecated `scope` attribute (in Vue.js 2.5.0+)
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/no-deprecated-slot-attribute.md b/docs/rules/no-deprecated-slot-attribute.md
index 73695653..9e30d3eb 100644
--- a/docs/rules/no-deprecated-slot-attribute.md
+++ b/docs/rules/no-deprecated-slot-attribute.md
@@ -10,7 +10,7 @@ since: v6.1.0
 
 > disallow deprecated `slot` attribute (in Vue.js 2.6.0+)
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/no-deprecated-slot-scope-attribute.md b/docs/rules/no-deprecated-slot-scope-attribute.md
index 51344aab..906be19d 100644
--- a/docs/rules/no-deprecated-slot-scope-attribute.md
+++ b/docs/rules/no-deprecated-slot-scope-attribute.md
@@ -10,7 +10,7 @@ since: v6.1.0
 
 > disallow deprecated `slot-scope` attribute (in Vue.js 2.6.0+)
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/no-deprecated-v-bind-sync.md b/docs/rules/no-deprecated-v-bind-sync.md
index 9a4ac282..adf0f558 100644
--- a/docs/rules/no-deprecated-v-bind-sync.md
+++ b/docs/rules/no-deprecated-v-bind-sync.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow use of deprecated `.sync` modifier on `v-bind` directive (in Vue.js 3.0.0+)
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/no-deprecated-v-is.md b/docs/rules/no-deprecated-v-is.md
index 884ad108..50b1b2d6 100644
--- a/docs/rules/no-deprecated-v-is.md
+++ b/docs/rules/no-deprecated-v-is.md
@@ -10,7 +10,7 @@ since: v7.11.0
 
 > disallow deprecated `v-is` directive (in Vue.js 3.1.0+)
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-deprecated-v-on-native-modifier.md b/docs/rules/no-deprecated-v-on-native-modifier.md
index c86ceffa..a750564f 100644
--- a/docs/rules/no-deprecated-v-on-native-modifier.md
+++ b/docs/rules/no-deprecated-v-on-native-modifier.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow using deprecated `.native` modifiers (in Vue.js 3.0.0+)
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-deprecated-v-on-number-modifiers.md b/docs/rules/no-deprecated-v-on-number-modifiers.md
index 5f610ada..74000caa 100644
--- a/docs/rules/no-deprecated-v-on-number-modifiers.md
+++ b/docs/rules/no-deprecated-v-on-number-modifiers.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow using deprecated number (keycode) modifiers (in Vue.js 3.0.0+)
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/no-deprecated-vue-config-keycodes.md b/docs/rules/no-deprecated-vue-config-keycodes.md
index f7d2e4b2..69d2deed 100644
--- a/docs/rules/no-deprecated-vue-config-keycodes.md
+++ b/docs/rules/no-deprecated-vue-config-keycodes.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow using deprecated `Vue.config.keyCodes` (in Vue.js 3.0.0+)
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-dupe-keys.md b/docs/rules/no-dupe-keys.md
index 46b1108e..b05e0ed8 100644
--- a/docs/rules/no-dupe-keys.md
+++ b/docs/rules/no-dupe-keys.md
@@ -10,7 +10,7 @@ since: v3.9.0
 
 > disallow duplication of field names
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule prevents using duplicate key names.
 
diff --git a/docs/rules/no-dupe-v-else-if.md b/docs/rules/no-dupe-v-else-if.md
index 42575679..d7b1f2b7 100644
--- a/docs/rules/no-dupe-v-else-if.md
+++ b/docs/rules/no-dupe-v-else-if.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow duplicate conditions in `v-if` / `v-else-if` chains
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-duplicate-attributes.md b/docs/rules/no-duplicate-attributes.md
index 099316ea..ef8ec810 100644
--- a/docs/rules/no-duplicate-attributes.md
+++ b/docs/rules/no-duplicate-attributes.md
@@ -10,7 +10,7 @@ since: v3.0.0
 
 > disallow duplication of attributes
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 When there are multiple attributes with the same name on a component, only the last one is used and the rest are ignored, so this is usually a mistake.
 
diff --git a/docs/rules/no-export-in-script-setup.md b/docs/rules/no-export-in-script-setup.md
index d8eb631e..1aeaa18e 100644
--- a/docs/rules/no-export-in-script-setup.md
+++ b/docs/rules/no-export-in-script-setup.md
@@ -10,7 +10,7 @@ since: v7.13.0
 
 > disallow `export` in `<script setup>`
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-expose-after-await.md b/docs/rules/no-expose-after-await.md
index 2a58a9df..67fef3b9 100644
--- a/docs/rules/no-expose-after-await.md
+++ b/docs/rules/no-expose-after-await.md
@@ -10,7 +10,7 @@ since: v8.1.0
 
 > disallow asynchronously registered `expose`
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-lifecycle-after-await.md b/docs/rules/no-lifecycle-after-await.md
index 6c8f7b9e..8ce82158 100644
--- a/docs/rules/no-lifecycle-after-await.md
+++ b/docs/rules/no-lifecycle-after-await.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow asynchronously registered lifecycle hooks
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-lone-template.md b/docs/rules/no-lone-template.md
index 3ed51c97..09bd00ad 100644
--- a/docs/rules/no-lone-template.md
+++ b/docs/rules/no-lone-template.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow unnecessary `<template>`
 
-- :gear: This rule is included in `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-multi-spaces.md b/docs/rules/no-multi-spaces.md
index 22b232e2..0f872f91 100644
--- a/docs/rules/no-multi-spaces.md
+++ b/docs/rules/no-multi-spaces.md
@@ -10,7 +10,7 @@ since: v3.12.0
 
 > disallow multiple spaces
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/no-multiple-slot-args.md b/docs/rules/no-multiple-slot-args.md
index 15a5b695..b669e563 100644
--- a/docs/rules/no-multiple-slot-args.md
+++ b/docs/rules/no-multiple-slot-args.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow to pass multiple arguments to scoped slots
 
-- :gear: This rule is included in `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-multiple-template-root.md b/docs/rules/no-multiple-template-root.md
index d2faacfe..8e10827b 100644
--- a/docs/rules/no-multiple-template-root.md
+++ b/docs/rules/no-multiple-template-root.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow adding multiple root nodes to the template
 
-- :gear: This rule is included in all of `"plugin:vue/essential"`, `"plugin:vue/strongly-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-mutating-props.md b/docs/rules/no-mutating-props.md
index a3bcaa96..64bc9489 100644
--- a/docs/rules/no-mutating-props.md
+++ b/docs/rules/no-mutating-props.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow mutation of component props
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-parsing-error.md b/docs/rules/no-parsing-error.md
index d6e14aa0..c819d6aa 100644
--- a/docs/rules/no-parsing-error.md
+++ b/docs/rules/no-parsing-error.md
@@ -10,7 +10,7 @@ since: v3.0.0
 
 > disallow parsing errors in `<template>`
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule reports syntax errors in `<template>`. For example:
 
diff --git a/docs/rules/no-ref-as-operand.md b/docs/rules/no-ref-as-operand.md
index 951c587c..e2506e76 100644
--- a/docs/rules/no-ref-as-operand.md
+++ b/docs/rules/no-ref-as-operand.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow use of value wrapped by `ref()` (Composition API) as an operand
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/no-reserved-component-names.md b/docs/rules/no-reserved-component-names.md
index 4130c8c9..a5d85cde 100644
--- a/docs/rules/no-reserved-component-names.md
+++ b/docs/rules/no-reserved-component-names.md
@@ -10,7 +10,7 @@ since: v6.1.0
 
 > disallow the use of reserved names in component definitions
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-reserved-keys.md b/docs/rules/no-reserved-keys.md
index bea37383..6c253b55 100644
--- a/docs/rules/no-reserved-keys.md
+++ b/docs/rules/no-reserved-keys.md
@@ -10,7 +10,7 @@ since: v3.9.0
 
 > disallow overwriting reserved keys
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-reserved-props.md b/docs/rules/no-reserved-props.md
index 23754b22..6c56481a 100644
--- a/docs/rules/no-reserved-props.md
+++ b/docs/rules/no-reserved-props.md
@@ -10,7 +10,7 @@ since: v8.0.0
 
 > disallow reserved names in props
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-shared-component-data.md b/docs/rules/no-shared-component-data.md
index 654c16d4..caf2dc99 100644
--- a/docs/rules/no-shared-component-data.md
+++ b/docs/rules/no-shared-component-data.md
@@ -10,7 +10,7 @@ since: v3.8.0
 
 > enforce component's data property to be a function
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 When using the data property on a component (i.e. anywhere except on `new Vue`), the value must be a function that returns an object.
diff --git a/docs/rules/no-side-effects-in-computed-properties.md b/docs/rules/no-side-effects-in-computed-properties.md
index 1edfebcf..201230f8 100644
--- a/docs/rules/no-side-effects-in-computed-properties.md
+++ b/docs/rules/no-side-effects-in-computed-properties.md
@@ -10,7 +10,7 @@ since: v3.6.0
 
 > disallow side effects in computed properties
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-spaces-around-equal-signs-in-attribute.md b/docs/rules/no-spaces-around-equal-signs-in-attribute.md
index dc648d3f..a88f88d0 100644
--- a/docs/rules/no-spaces-around-equal-signs-in-attribute.md
+++ b/docs/rules/no-spaces-around-equal-signs-in-attribute.md
@@ -10,7 +10,7 @@ since: v5.0.0
 
 > disallow spaces around equal signs in attribute
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/no-template-key.md b/docs/rules/no-template-key.md
index 246fc0cd..7780982b 100644
--- a/docs/rules/no-template-key.md
+++ b/docs/rules/no-template-key.md
@@ -10,7 +10,7 @@ since: v3.4.0
 
 > disallow `key` attribute on `<template>`
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 Vue.js disallows `key` attribute on `<template>` elements.
 
diff --git a/docs/rules/no-template-shadow.md b/docs/rules/no-template-shadow.md
index 6744d4dc..29eacacc 100644
--- a/docs/rules/no-template-shadow.md
+++ b/docs/rules/no-template-shadow.md
@@ -10,7 +10,7 @@ since: v5.0.0
 
 > disallow variable declarations from shadowing variables declared in the outer scope
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 `no-template-shadow` should report variable definitions of v-for directives or scope attributes if they shadow the variables in parent scopes.
 
diff --git a/docs/rules/no-textarea-mustache.md b/docs/rules/no-textarea-mustache.md
index 67e7907d..4786908b 100644
--- a/docs/rules/no-textarea-mustache.md
+++ b/docs/rules/no-textarea-mustache.md
@@ -10,7 +10,7 @@ since: v3.0.0
 
 > disallow mustaches in `<textarea>`
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-unused-components.md b/docs/rules/no-unused-components.md
index 295cc388..acd940c2 100644
--- a/docs/rules/no-unused-components.md
+++ b/docs/rules/no-unused-components.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow registering components that are not used inside templates
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-unused-vars.md b/docs/rules/no-unused-vars.md
index 204773dc..ca19368f 100644
--- a/docs/rules/no-unused-vars.md
+++ b/docs/rules/no-unused-vars.md
@@ -10,7 +10,7 @@ since: v3.14.0
 
 > disallow unused variable definitions of v-for directives or scope attributes
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :bulb: Some problems reported by this rule are manually fixable by editor [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions).
 
 ## :book: Rule Details
diff --git a/docs/rules/no-use-computed-property-like-method.md b/docs/rules/no-use-computed-property-like-method.md
index df210743..6d607ef1 100644
--- a/docs/rules/no-use-computed-property-like-method.md
+++ b/docs/rules/no-use-computed-property-like-method.md
@@ -10,7 +10,7 @@ since: v7.15.0
 
 > disallow use computed property like method
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-use-v-if-with-v-for.md b/docs/rules/no-use-v-if-with-v-for.md
index f36af6b9..02720ea1 100644
--- a/docs/rules/no-use-v-if-with-v-for.md
+++ b/docs/rules/no-use-v-if-with-v-for.md
@@ -10,7 +10,7 @@ since: v4.6.0
 
 > disallow using `v-if` on the same element as `v-for`
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-useless-template-attributes.md b/docs/rules/no-useless-template-attributes.md
index 9b79f95a..e55b27fb 100644
--- a/docs/rules/no-useless-template-attributes.md
+++ b/docs/rules/no-useless-template-attributes.md
@@ -10,7 +10,7 @@ since: v7.19.0
 
 > disallow useless attribute on `<template>`
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-v-for-template-key-on-child.md b/docs/rules/no-v-for-template-key-on-child.md
index 2186b232..319d4006 100644
--- a/docs/rules/no-v-for-template-key-on-child.md
+++ b/docs/rules/no-v-for-template-key-on-child.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow key of `<template v-for>` placed on child elements
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-v-for-template-key.md b/docs/rules/no-v-for-template-key.md
index 8a7f5227..69762607 100644
--- a/docs/rules/no-v-for-template-key.md
+++ b/docs/rules/no-v-for-template-key.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow `key` attribute on `<template v-for>`
 
-- :gear: This rule is included in all of `"plugin:vue/essential"`, `"plugin:vue/strongly-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-v-html.md b/docs/rules/no-v-html.md
index b4cdd7e4..4cb5dd4f 100644
--- a/docs/rules/no-v-html.md
+++ b/docs/rules/no-v-html.md
@@ -10,7 +10,7 @@ since: v4.7.0
 
 > disallow use of v-html to prevent XSS attack
 
-- :gear: This rule is included in `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-v-model-argument.md b/docs/rules/no-v-model-argument.md
index 70dbdc60..5df96e43 100644
--- a/docs/rules/no-v-model-argument.md
+++ b/docs/rules/no-v-model-argument.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow adding an argument to `v-model` used in custom component
 
-- :gear: This rule is included in all of `"plugin:vue/essential"`, `"plugin:vue/strongly-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule checks whether `v-model` used on custom component do not have an argument.
 
diff --git a/docs/rules/no-v-text-v-html-on-component.md b/docs/rules/no-v-text-v-html-on-component.md
index 66c3af00..8e504d85 100644
--- a/docs/rules/no-v-text-v-html-on-component.md
+++ b/docs/rules/no-v-text-v-html-on-component.md
@@ -10,7 +10,7 @@ since: v8.4.0
 
 > disallow v-text / v-html on component
 
-- :gear: This rule is included in all of `"plugin:vue/essential"`, `"plugin:vue/vue3-essential"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/recommended"`, `*.configs["flat/vue2-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/no-watch-after-await.md b/docs/rules/no-watch-after-await.md
index d3f31ab4..78854371 100644
--- a/docs/rules/no-watch-after-await.md
+++ b/docs/rules/no-watch-after-await.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > disallow asynchronously registered `watch`
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/one-component-per-file.md b/docs/rules/one-component-per-file.md
index eca6708e..6fbede33 100644
--- a/docs/rules/one-component-per-file.md
+++ b/docs/rules/one-component-per-file.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > enforce that each component should be in its own file
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/order-in-components.md b/docs/rules/order-in-components.md
index c23ca80f..d901fbe7 100644
--- a/docs/rules/order-in-components.md
+++ b/docs/rules/order-in-components.md
@@ -10,7 +10,7 @@ since: v3.2.0
 
 > enforce order of properties in components
 
-- :gear: This rule is included in `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 - :bulb: Some problems reported by this rule are manually fixable by editor [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions).
 
diff --git a/docs/rules/prefer-import-from-vue.md b/docs/rules/prefer-import-from-vue.md
index 622ae903..a15ca848 100644
--- a/docs/rules/prefer-import-from-vue.md
+++ b/docs/rules/prefer-import-from-vue.md
@@ -10,7 +10,7 @@ since: v8.5.0
 
 > enforce import from 'vue' instead of import from '@vue/\*'
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/prop-name-casing.md b/docs/rules/prop-name-casing.md
index 11b850bc..1f9f8262 100644
--- a/docs/rules/prop-name-casing.md
+++ b/docs/rules/prop-name-casing.md
@@ -10,7 +10,7 @@ since: v4.3.0
 
 > enforce specific casing for the Prop name in Vue components
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/require-component-is.md b/docs/rules/require-component-is.md
index 2dd25bf8..355db29b 100644
--- a/docs/rules/require-component-is.md
+++ b/docs/rules/require-component-is.md
@@ -10,7 +10,7 @@ since: v3.0.0
 
 > require `v-bind:is` of `<component>` elements
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/require-default-prop.md b/docs/rules/require-default-prop.md
index 237bfada..f997b208 100644
--- a/docs/rules/require-default-prop.md
+++ b/docs/rules/require-default-prop.md
@@ -10,7 +10,7 @@ since: v3.13.0
 
 > require default value for props
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/require-explicit-emits.md b/docs/rules/require-explicit-emits.md
index 80738c64..d04dec8b 100644
--- a/docs/rules/require-explicit-emits.md
+++ b/docs/rules/require-explicit-emits.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > require `emits` option with name triggered by `$emit()`
 
-- :gear: This rule is included in `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 - :bulb: Some problems reported by this rule are manually fixable by editor [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions).
 
 ## :book: Rule Details
diff --git a/docs/rules/require-prop-type-constructor.md b/docs/rules/require-prop-type-constructor.md
index 8078fe46..7c7dee6f 100644
--- a/docs/rules/require-prop-type-constructor.md
+++ b/docs/rules/require-prop-type-constructor.md
@@ -10,7 +10,7 @@ since: v5.0.0
 
 > require prop type to be a constructor
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/require-prop-types.md b/docs/rules/require-prop-types.md
index 94239bf4..c1a1935b 100644
--- a/docs/rules/require-prop-types.md
+++ b/docs/rules/require-prop-types.md
@@ -10,7 +10,7 @@ since: v3.9.0
 
 > require type definitions in props
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/require-render-return.md b/docs/rules/require-render-return.md
index ef35006f..406bc6c2 100644
--- a/docs/rules/require-render-return.md
+++ b/docs/rules/require-render-return.md
@@ -10,7 +10,7 @@ since: v3.10.0
 
 > enforce render function to always return value
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/require-slots-as-functions.md b/docs/rules/require-slots-as-functions.md
index 85518972..c56bd04c 100644
--- a/docs/rules/require-slots-as-functions.md
+++ b/docs/rules/require-slots-as-functions.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > enforce properties of `$slots` to be used as a function
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/require-toggle-inside-transition.md b/docs/rules/require-toggle-inside-transition.md
index 7e581d26..c62de95c 100644
--- a/docs/rules/require-toggle-inside-transition.md
+++ b/docs/rules/require-toggle-inside-transition.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > require control the display of the content inside `<transition>`
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/require-v-for-key.md b/docs/rules/require-v-for-key.md
index 7699e1b3..e6664f5f 100644
--- a/docs/rules/require-v-for-key.md
+++ b/docs/rules/require-v-for-key.md
@@ -10,7 +10,7 @@ since: v3.0.0
 
 > require `v-bind:key` with `v-for` directives
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/require-valid-default-prop.md b/docs/rules/require-valid-default-prop.md
index e179a278..4a78dadf 100644
--- a/docs/rules/require-valid-default-prop.md
+++ b/docs/rules/require-valid-default-prop.md
@@ -10,7 +10,7 @@ since: v3.13.0
 
 > enforce props default values to be valid
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/return-in-computed-property.md b/docs/rules/return-in-computed-property.md
index 3fe5a471..67ab18b1 100644
--- a/docs/rules/return-in-computed-property.md
+++ b/docs/rules/return-in-computed-property.md
@@ -10,7 +10,7 @@ since: v3.7.0
 
 > enforce that a return statement is present in computed property
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/return-in-emits-validator.md b/docs/rules/return-in-emits-validator.md
index 96763a6e..8452a53a 100644
--- a/docs/rules/return-in-emits-validator.md
+++ b/docs/rules/return-in-emits-validator.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > enforce that a return statement is present in emits validator
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/singleline-html-element-content-newline.md b/docs/rules/singleline-html-element-content-newline.md
index c85e9ab0..11531dcf 100644
--- a/docs/rules/singleline-html-element-content-newline.md
+++ b/docs/rules/singleline-html-element-content-newline.md
@@ -10,7 +10,7 @@ since: v5.0.0
 
 > require a line break before and after the contents of a singleline element
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/this-in-template.md b/docs/rules/this-in-template.md
index 75574252..65fb6bfe 100644
--- a/docs/rules/this-in-template.md
+++ b/docs/rules/this-in-template.md
@@ -10,7 +10,7 @@ since: v3.13.0
 
 > disallow usage of `this` in template
 
-- :gear: This rule is included in `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/use-v-on-exact.md b/docs/rules/use-v-on-exact.md
index 8294fb0d..e2e7f473 100644
--- a/docs/rules/use-v-on-exact.md
+++ b/docs/rules/use-v-on-exact.md
@@ -10,7 +10,7 @@ since: v5.0.0
 
 > enforce usage of `exact` modifier on `v-on`
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/v-bind-style.md b/docs/rules/v-bind-style.md
index f87ac4e9..fc5c82bc 100644
--- a/docs/rules/v-bind-style.md
+++ b/docs/rules/v-bind-style.md
@@ -10,7 +10,7 @@ since: v3.0.0
 
 > enforce `v-bind` directive style
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/v-on-event-hyphenation.md b/docs/rules/v-on-event-hyphenation.md
index 60c9d84d..811b3743 100644
--- a/docs/rules/v-on-event-hyphenation.md
+++ b/docs/rules/v-on-event-hyphenation.md
@@ -10,7 +10,7 @@ since: v7.4.0
 
 > enforce v-on event naming style on custom components in template
 
-- :gear: This rule is included in `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/v-on-style.md b/docs/rules/v-on-style.md
index 7cf70cd3..56bcb222 100644
--- a/docs/rules/v-on-style.md
+++ b/docs/rules/v-on-style.md
@@ -10,7 +10,7 @@ since: v3.0.0
 
 > enforce `v-on` directive style
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/v-slot-style.md b/docs/rules/v-slot-style.md
index bd8832ac..64a0fb96 100644
--- a/docs/rules/v-slot-style.md
+++ b/docs/rules/v-slot-style.md
@@ -10,7 +10,7 @@ since: v6.0.0
 
 > enforce `v-slot` directive style
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 
 ## :book: Rule Details
diff --git a/docs/rules/valid-attribute-name.md b/docs/rules/valid-attribute-name.md
index 82a217eb..1d71781a 100644
--- a/docs/rules/valid-attribute-name.md
+++ b/docs/rules/valid-attribute-name.md
@@ -10,7 +10,7 @@ since: v9.0.0
 
 > require valid attribute names
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/valid-define-emits.md b/docs/rules/valid-define-emits.md
index d86f8d05..db811aa8 100644
--- a/docs/rules/valid-define-emits.md
+++ b/docs/rules/valid-define-emits.md
@@ -10,7 +10,7 @@ since: v7.13.0
 
 > enforce valid `defineEmits` compiler macro
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule checks whether `defineEmits` compiler macro is valid.
 
diff --git a/docs/rules/valid-define-props.md b/docs/rules/valid-define-props.md
index 81bbe02b..5acbf83a 100644
--- a/docs/rules/valid-define-props.md
+++ b/docs/rules/valid-define-props.md
@@ -10,7 +10,7 @@ since: v7.13.0
 
 > enforce valid `defineProps` compiler macro
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule checks whether `defineProps` compiler macro is valid.
 
diff --git a/docs/rules/valid-model-definition.md b/docs/rules/valid-model-definition.md
index fd660562..601c4bfc 100644
--- a/docs/rules/valid-model-definition.md
+++ b/docs/rules/valid-model-definition.md
@@ -10,7 +10,7 @@ since: v9.0.0
 
 > require valid keys in model option
 
-- :gear: This rule is included in all of `"plugin:vue/essential"`, `"plugin:vue/strongly-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 ## :book: Rule Details
 
diff --git a/docs/rules/valid-next-tick.md b/docs/rules/valid-next-tick.md
index ebac5551..832bfcc4 100644
--- a/docs/rules/valid-next-tick.md
+++ b/docs/rules/valid-next-tick.md
@@ -10,7 +10,7 @@ since: v7.5.0
 
 > enforce valid `nextTick` function calls
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 - :wrench: The `--fix` option on the [command line](https://eslint.org/docs/user-guide/command-line-interface#fixing-problems) can automatically fix some of the problems reported by this rule.
 - :bulb: Some problems reported by this rule are manually fixable by editor [suggestions](https://eslint.org/docs/developer-guide/working-with-rules#providing-suggestions).
 
diff --git a/docs/rules/valid-template-root.md b/docs/rules/valid-template-root.md
index 3e474e96..cfc61a2a 100644
--- a/docs/rules/valid-template-root.md
+++ b/docs/rules/valid-template-root.md
@@ -10,7 +10,7 @@ since: v3.11.0
 
 > enforce valid template root
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule checks whether every template root is valid.
 
diff --git a/docs/rules/valid-v-bind-sync.md b/docs/rules/valid-v-bind-sync.md
index 96499764..cbaf8281 100644
--- a/docs/rules/valid-v-bind-sync.md
+++ b/docs/rules/valid-v-bind-sync.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > enforce valid `.sync` modifier on `v-bind` directives
 
-- :gear: This rule is included in all of `"plugin:vue/essential"`, `"plugin:vue/strongly-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule checks whether every `.sync` modifier on `v-bind` directives is valid.
 
diff --git a/docs/rules/valid-v-bind.md b/docs/rules/valid-v-bind.md
index 0a7ba3c1..ef55ec9d 100644
--- a/docs/rules/valid-v-bind.md
+++ b/docs/rules/valid-v-bind.md
@@ -10,7 +10,7 @@ since: v3.11.0
 
 > enforce valid `v-bind` directives
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule checks whether every `v-bind` directive is valid.
 
diff --git a/docs/rules/valid-v-cloak.md b/docs/rules/valid-v-cloak.md
index 5d40b6db..cf17be8a 100644
--- a/docs/rules/valid-v-cloak.md
+++ b/docs/rules/valid-v-cloak.md
@@ -10,7 +10,7 @@ since: v3.11.0
 
 > enforce valid `v-cloak` directives
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule checks whether every `v-cloak` directive is valid.
 
diff --git a/docs/rules/valid-v-else-if.md b/docs/rules/valid-v-else-if.md
index de0645c9..9e927e0d 100644
--- a/docs/rules/valid-v-else-if.md
+++ b/docs/rules/valid-v-else-if.md
@@ -10,7 +10,7 @@ since: v3.11.0
 
 > enforce valid `v-else-if` directives
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule checks whether every `v-else-if` directive is valid.
 
diff --git a/docs/rules/valid-v-else.md b/docs/rules/valid-v-else.md
index 827bd989..033f7553 100644
--- a/docs/rules/valid-v-else.md
+++ b/docs/rules/valid-v-else.md
@@ -10,7 +10,7 @@ since: v3.11.0
 
 > enforce valid `v-else` directives
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule checks whether every `v-else` directive is valid.
 
diff --git a/docs/rules/valid-v-for.md b/docs/rules/valid-v-for.md
index 45b33949..68eb21fe 100644
--- a/docs/rules/valid-v-for.md
+++ b/docs/rules/valid-v-for.md
@@ -10,7 +10,7 @@ since: v3.11.0
 
 > enforce valid `v-for` directives
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule checks whether every `v-for` directive is valid.
 
diff --git a/docs/rules/valid-v-html.md b/docs/rules/valid-v-html.md
index 10c6319e..84a0f049 100644
--- a/docs/rules/valid-v-html.md
+++ b/docs/rules/valid-v-html.md
@@ -10,7 +10,7 @@ since: v3.11.0
 
 > enforce valid `v-html` directives
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule checks whether every `v-html` directive is valid.
 
diff --git a/docs/rules/valid-v-if.md b/docs/rules/valid-v-if.md
index 9afba0a2..eabe519a 100644
--- a/docs/rules/valid-v-if.md
+++ b/docs/rules/valid-v-if.md
@@ -10,7 +10,7 @@ since: v3.11.0
 
 > enforce valid `v-if` directives
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule checks whether every `v-if` directive is valid.
 
diff --git a/docs/rules/valid-v-is.md b/docs/rules/valid-v-is.md
index 14e6bb31..b90dfb2f 100644
--- a/docs/rules/valid-v-is.md
+++ b/docs/rules/valid-v-is.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > enforce valid `v-is` directives
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 This rule checks whether every `v-is` directive is valid.
 
diff --git a/docs/rules/valid-v-memo.md b/docs/rules/valid-v-memo.md
index ca027cd3..eaa7d9ef 100644
--- a/docs/rules/valid-v-memo.md
+++ b/docs/rules/valid-v-memo.md
@@ -10,7 +10,7 @@ since: v7.16.0
 
 > enforce valid `v-memo` directives
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/vue3-strongly-recommended"` and `"plugin:vue/vue3-recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/vue3-recommended"` and `*.configs["flat/recommended"]`.
 
 This rule checks whether every `v-memo` directive is valid.
 
diff --git a/docs/rules/valid-v-model.md b/docs/rules/valid-v-model.md
index 35fbe1cd..67cb9c1e 100644
--- a/docs/rules/valid-v-model.md
+++ b/docs/rules/valid-v-model.md
@@ -10,7 +10,7 @@ since: v3.11.0
 
 > enforce valid `v-model` directives
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule checks whether every `v-model` directive is valid.
 
diff --git a/docs/rules/valid-v-on.md b/docs/rules/valid-v-on.md
index 22e2e817..26b56969 100644
--- a/docs/rules/valid-v-on.md
+++ b/docs/rules/valid-v-on.md
@@ -10,7 +10,7 @@ since: v3.11.0
 
 > enforce valid `v-on` directives
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule checks whether every `v-on` directive is valid.
 
diff --git a/docs/rules/valid-v-once.md b/docs/rules/valid-v-once.md
index b5bedff9..56398007 100644
--- a/docs/rules/valid-v-once.md
+++ b/docs/rules/valid-v-once.md
@@ -10,7 +10,7 @@ since: v3.11.0
 
 > enforce valid `v-once` directives
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule checks whether every `v-once` directive is valid.
 
diff --git a/docs/rules/valid-v-pre.md b/docs/rules/valid-v-pre.md
index 5496d90c..3d2e56fb 100644
--- a/docs/rules/valid-v-pre.md
+++ b/docs/rules/valid-v-pre.md
@@ -10,7 +10,7 @@ since: v3.11.0
 
 > enforce valid `v-pre` directives
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule checks whether every `v-pre` directive is valid.
 
diff --git a/docs/rules/valid-v-show.md b/docs/rules/valid-v-show.md
index 5b800037..0d52b72f 100644
--- a/docs/rules/valid-v-show.md
+++ b/docs/rules/valid-v-show.md
@@ -10,7 +10,7 @@ since: v3.11.0
 
 > enforce valid `v-show` directives
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule checks whether every `v-show` directive is valid.
 
diff --git a/docs/rules/valid-v-slot.md b/docs/rules/valid-v-slot.md
index 8d608b8c..5e9bb5d6 100644
--- a/docs/rules/valid-v-slot.md
+++ b/docs/rules/valid-v-slot.md
@@ -10,7 +10,7 @@ since: v7.0.0
 
 > enforce valid `v-slot` directives
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule checks whether every `v-slot` directive is valid.
 
diff --git a/docs/rules/valid-v-text.md b/docs/rules/valid-v-text.md
index dc5ada6d..189a94bd 100644
--- a/docs/rules/valid-v-text.md
+++ b/docs/rules/valid-v-text.md
@@ -10,7 +10,7 @@ since: v3.11.0
 
 > enforce valid `v-text` directives
 
-- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `"plugin:vue/essential"`, `"plugin:vue/vue3-strongly-recommended"`, `"plugin:vue/strongly-recommended"`, `"plugin:vue/vue3-recommended"` and `"plugin:vue/recommended"`.
+- :gear: This rule is included in all of `"plugin:vue/vue3-essential"`, `*.configs["flat/essential"]`, `"plugin:vue/essential"`, `*.configs["flat/vue2-essential"]`, `"plugin:vue/vue3-strongly-recommended"`, `*.configs["flat/strongly-recommended"]`, `"plugin:vue/strongly-recommended"`, `*.configs["flat/vue2-strongly-recommended"]`, `"plugin:vue/vue3-recommended"`, `*.configs["flat/recommended"]`, `"plugin:vue/recommended"` and `*.configs["flat/vue2-recommended"]`.
 
 This rule checks whether every `v-text` directive is valid.
 
diff --git a/docs/user-guide/index.md b/docs/user-guide/index.md
index 1567d6e6..df713852 100644
--- a/docs/user-guide/index.md
+++ b/docs/user-guide/index.md
@@ -27,9 +27,53 @@ yarn add -D eslint eslint-plugin-vue
 
 ## :book: Usage
 
-### Configuration
+### Configuration (`eslint.config.js`)
 
-Use `.eslintrc.*` file to configure rules. See also: [https://eslint.org/docs/user-guide/configuring](https://eslint.org/docs/user-guide/configuring).
+Use `eslint.config.js` file to configure rules. This is the default in ESLint v9, but can be used starting from ESLint v8.57.0. See also: <https://eslint.org/docs/latest/use/configure/configuration-files-new>.
+
+Example **eslint.config.js**:
+
+```js
+import pluginVue from 'eslint-plugin-vue'
+export default [
+  // add more generic rulesets here, such as:
+  // js.configs.recommended,
+  ...pluginVue.configs['flat/recommended'],
+  // ...pluginVue.configs['flat/vue2-recommended'], // Use this if you are using Vue.js 2.x.
+  {
+    rules: {
+      // override/add rules settings here, such as:
+      // 'vue/no-unused-vars': 'error'
+    }
+  }
+]
+```
+
+See [the rule list](../rules/index.md) to get the `configs` & `rules` that this plugin provides.
+
+#### Bundle Configurations (`eslint.config.js`)
+
+This plugin provides some predefined configs.
+You can use the following configs by adding them to `eslint.config.js`.
+(All flat configs in this plugin are provided as arrays, so spread syntax is required when combining them with other configs.)
+
+- `*.configs["flat/base"]` ... Settings and rules to enable correct ESLint parsing.
+- Configurations for using Vue.js 3.x:
+  - `*.configs["flat/essential"]` ... `base`, plus rules to prevent errors or unintended behavior.
+  - `*.configs["flat/strongly-recommended"]` ... Above, plus rules to considerably improve code readability and/or dev experience.
+  - `*.configs["flat/recommended"]` ... Above, plus rules to enforce subjective community defaults to ensure consistency.
+- Configurations for using Vue.js 2.x:
+  - `*.configs["flat/vue2-essential"]` ... `base`, plus rules to prevent errors or unintended behavior.
+  - `*.configs["flat/vue2-strongly-recommended"]` ... Above, plus rules to considerably improve code readability and/or dev experience.
+  - `*.configs["flat/vue2-recommended"]` ... Above, plus rules to enforce subjective community defaults to ensure consistency
+
+:::warning Reporting rules
+By default, all rules from **base** and **essential** categories report ESLint errors. Other rules - because they're not covering potential bugs in the application - report warnings. What does it mean? By default - nothing, but if you want - you can set up a threshold and break the build after a certain amount of warnings, instead of any. More information [here](https://eslint.org/docs/user-guide/command-line-interface#handling-warnings).
+:::
+
+### Configuration (`.eslintrc`)
+
+Use `.eslintrc.*` file to configure rules in ESLint < v9. See also: <https://eslint.org/docs/latest/use/configure/>.
 
 Example **.eslintrc.js**:
 
@@ -48,25 +92,25 @@ module.exports = {
 }
 ```
 
-See [the rule list](../rules/index.md) to get the `extends` &amp; `rules` that this plugin provides.
+See [the rule list](../rules/index.md) to get the `extends` & `rules` that this plugin provides.
 
-#### Bundle Configurations
+#### Bundle Configurations (`.eslintrc`)
 
 This plugin provides some predefined configs.
 You can use the following configs by adding them to `extends`.
 
 - `"plugin:vue/base"` ... Settings and rules to enable correct ESLint parsing.
-- Configurations for using Vue.js 3.x.
+- Configurations for using Vue.js 3.x:
   - `"plugin:vue/vue3-essential"` ... `base`, plus rules to prevent errors or unintended behavior.
   - `"plugin:vue/vue3-strongly-recommended"` ... Above, plus rules to considerably improve code readability and/or dev experience.
   - `"plugin:vue/vue3-recommended"` ... Above, plus rules to enforce subjective community defaults to ensure consistency.
-- Configurations for using Vue.js 2.x.
+- Configurations for using Vue.js 2.x:
   - `"plugin:vue/essential"` ... `base`, plus rules to prevent errors or unintended behavior.
   - `"plugin:vue/strongly-recommended"` ... Above, plus rules to considerably improve code readability and/or dev experience.
   - `"plugin:vue/recommended"` ... Above, plus rules to enforce subjective community defaults to ensure consistency
 
 :::warning Reporting rules
-By default all rules from **base** and **essential** categories report ESLint errors. Other rules - because they're not covering potential bugs in the application - report warnings. What does it mean? By default - nothing, but if you want - you can set up a threshold and break the build after a certain amount of warnings, instead of any. More information [here](https://eslint.org/docs/user-guide/command-line-interface#handling-warnings).
+By default, all rules from **base** and **essential** categories report ESLint errors. Other rules - because they're not covering potential bugs in the application - report warnings. What does it mean? By default - nothing, but if you want - you can set up a threshold and break the build after a certain amount of warnings, instead of any. More information [here](https://eslint.org/docs/user-guide/command-line-interface#handling-warnings).
 :::
 
 :::warning Status of Vue.js 3.x supports
diff --git a/lib/configs/flat/base.js b/lib/configs/flat/base.js
index e36ab4b7..6c379c27 100644
--- a/lib/configs/flat/base.js
+++ b/lib/configs/flat/base.js
@@ -4,14 +4,34 @@
  * in order to update its content execute "npm run update"
  */
 const globals = require('globals')
-module.exports = {
-  languageOptions: {
-    parser: require('vue-eslint-parser'),
-    sourceType: 'module',
-    globals: globals.browser
+module.exports = [
+  {
+    plugins: {
+      get vue() {
+        return require('../../index')
+      }
+    },
+    languageOptions: {
+      sourceType: 'module',
+      globals: globals.browser
+    }
   },
-  rules: {
-    'vue/comment-directive': 'error',
-    'vue/jsx-uses-vars': 'error'
+  {
+    files: ['*.vue', '**/*.vue'],
+    plugins: {
+      get vue() {
+        return require('../../index')
+      }
+    },
+    languageOptions: {
+      parser: require('vue-eslint-parser'),
+      sourceType: 'module',
+      globals: globals.browser
+    },
+    rules: {
+      'vue/comment-directive': 'error',
+      'vue/jsx-uses-vars': 'error'
+    },
+    processor: 'vue/vue'
   }
-}
+]
diff --git a/lib/configs/flat/vue2-essential.js b/lib/configs/flat/vue2-essential.js
index ce253352..3b8c9924 100644
--- a/lib/configs/flat/vue2-essential.js
+++ b/lib/configs/flat/vue2-essential.js
@@ -5,72 +5,74 @@
  */
 'use strict'
 const config = require('./base.js')
-const { extendRules } = require('../../utils/config-helpers.js')
 
-const rules = {
-  'vue/multi-word-component-names': 'error',
-  'vue/no-arrow-functions-in-watch': 'error',
-  'vue/no-async-in-computed-properties': 'error',
-  'vue/no-child-content': 'error',
-  'vue/no-computed-properties-in-data': 'error',
-  'vue/no-custom-modifiers-on-v-model': 'error',
-  'vue/no-dupe-keys': 'error',
-  'vue/no-dupe-v-else-if': 'error',
-  'vue/no-duplicate-attributes': 'error',
-  'vue/no-export-in-script-setup': 'error',
-  'vue/no-multiple-template-root': 'error',
-  'vue/no-mutating-props': 'error',
-  'vue/no-parsing-error': 'error',
-  'vue/no-ref-as-operand': 'error',
-  'vue/no-reserved-component-names': 'error',
-  'vue/no-reserved-keys': 'error',
-  'vue/no-reserved-props': [
-    'error',
-    {
-      vueVersion: 2
+module.exports = [
+  ...config,
+  {
+    rules: {
+      'vue/multi-word-component-names': 'error',
+      'vue/no-arrow-functions-in-watch': 'error',
+      'vue/no-async-in-computed-properties': 'error',
+      'vue/no-child-content': 'error',
+      'vue/no-computed-properties-in-data': 'error',
+      'vue/no-custom-modifiers-on-v-model': 'error',
+      'vue/no-dupe-keys': 'error',
+      'vue/no-dupe-v-else-if': 'error',
+      'vue/no-duplicate-attributes': 'error',
+      'vue/no-export-in-script-setup': 'error',
+      'vue/no-multiple-template-root': 'error',
+      'vue/no-mutating-props': 'error',
+      'vue/no-parsing-error': 'error',
+      'vue/no-ref-as-operand': 'error',
+      'vue/no-reserved-component-names': 'error',
+      'vue/no-reserved-keys': 'error',
+      'vue/no-reserved-props': [
+        'error',
+        {
+          vueVersion: 2
+        }
+      ],
+      'vue/no-shared-component-data': 'error',
+      'vue/no-side-effects-in-computed-properties': 'error',
+      'vue/no-template-key': 'error',
+      'vue/no-textarea-mustache': 'error',
+      'vue/no-unused-components': 'error',
+      'vue/no-unused-vars': 'error',
+      'vue/no-use-computed-property-like-method': 'error',
+      'vue/no-use-v-if-with-v-for': 'error',
+      'vue/no-useless-template-attributes': 'error',
+      'vue/no-v-for-template-key': 'error',
+      'vue/no-v-model-argument': 'error',
+      'vue/no-v-text-v-html-on-component': 'error',
+      'vue/require-component-is': 'error',
+      'vue/require-prop-type-constructor': 'error',
+      'vue/require-render-return': 'error',
+      'vue/require-v-for-key': 'error',
+      'vue/require-valid-default-prop': 'error',
+      'vue/return-in-computed-property': 'error',
+      'vue/return-in-emits-validator': 'error',
+      'vue/use-v-on-exact': 'error',
+      'vue/valid-attribute-name': 'error',
+      'vue/valid-define-emits': 'error',
+      'vue/valid-define-props': 'error',
+      'vue/valid-model-definition': 'error',
+      'vue/valid-next-tick': 'error',
+      'vue/valid-template-root': 'error',
+      'vue/valid-v-bind-sync': 'error',
+      'vue/valid-v-bind': 'error',
+      'vue/valid-v-cloak': 'error',
+      'vue/valid-v-else-if': 'error',
+      'vue/valid-v-else': 'error',
+      'vue/valid-v-for': 'error',
+      'vue/valid-v-html': 'error',
+      'vue/valid-v-if': 'error',
+      'vue/valid-v-model': 'error',
+      'vue/valid-v-on': 'error',
+      'vue/valid-v-once': 'error',
+      'vue/valid-v-pre': 'error',
+      'vue/valid-v-show': 'error',
+      'vue/valid-v-slot': 'error',
+      'vue/valid-v-text': 'error'
     }
-  ],
-  'vue/no-shared-component-data': 'error',
-  'vue/no-side-effects-in-computed-properties': 'error',
-  'vue/no-template-key': 'error',
-  'vue/no-textarea-mustache': 'error',
-  'vue/no-unused-components': 'error',
-  'vue/no-unused-vars': 'error',
-  'vue/no-use-computed-property-like-method': 'error',
-  'vue/no-use-v-if-with-v-for': 'error',
-  'vue/no-useless-template-attributes': 'error',
-  'vue/no-v-for-template-key': 'error',
-  'vue/no-v-model-argument': 'error',
-  'vue/no-v-text-v-html-on-component': 'error',
-  'vue/require-component-is': 'error',
-  'vue/require-prop-type-constructor': 'error',
-  'vue/require-render-return': 'error',
-  'vue/require-v-for-key': 'error',
-  'vue/require-valid-default-prop': 'error',
-  'vue/return-in-computed-property': 'error',
-  'vue/return-in-emits-validator': 'error',
-  'vue/use-v-on-exact': 'error',
-  'vue/valid-attribute-name': 'error',
-  'vue/valid-define-emits': 'error',
-  'vue/valid-define-props': 'error',
-  'vue/valid-model-definition': 'error',
-  'vue/valid-next-tick': 'error',
-  'vue/valid-template-root': 'error',
-  'vue/valid-v-bind-sync': 'error',
-  'vue/valid-v-bind': 'error',
-  'vue/valid-v-cloak': 'error',
-  'vue/valid-v-else-if': 'error',
-  'vue/valid-v-else': 'error',
-  'vue/valid-v-for': 'error',
-  'vue/valid-v-html': 'error',
-  'vue/valid-v-if': 'error',
-  'vue/valid-v-model': 'error',
-  'vue/valid-v-on': 'error',
-  'vue/valid-v-once': 'error',
-  'vue/valid-v-pre': 'error',
-  'vue/valid-v-show': 'error',
-  'vue/valid-v-slot': 'error',
-  'vue/valid-v-text': 'error'
-}
-
-module.exports = extendRules(config, rules)
+  }
+]
diff --git a/lib/configs/flat/vue2-recommended.js b/lib/configs/flat/vue2-recommended.js
index e15b0207..9bd029de 100644
--- a/lib/configs/flat/vue2-recommended.js
+++ b/lib/configs/flat/vue2-recommended.js
@@ -5,16 +5,18 @@
  */
 'use strict'
 const config = require('./vue2-strongly-recommended.js')
-const { extendRules } = require('../../utils/config-helpers.js')
 
-const rules = {
-  'vue/attributes-order': 'warn',
-  'vue/component-tags-order': 'warn',
-  'vue/no-lone-template': 'warn',
-  'vue/no-multiple-slot-args': 'warn',
-  'vue/no-v-html': 'warn',
-  'vue/order-in-components': 'warn',
-  'vue/this-in-template': 'warn'
-}
-
-module.exports = extendRules(config, rules)
+module.exports = [
+  ...config,
+  {
+    rules: {
+      'vue/attributes-order': 'warn',
+      'vue/component-tags-order': 'warn',
+      'vue/no-lone-template': 'warn',
+      'vue/no-multiple-slot-args': 'warn',
+      'vue/no-v-html': 'warn',
+      'vue/order-in-components': 'warn',
+      'vue/this-in-template': 'warn'
+    }
+  }
+]
diff --git a/lib/configs/flat/vue2-strongly-recommended.js b/lib/configs/flat/vue2-strongly-recommended.js
index a1c870b9..e8d437b4 100644
--- a/lib/configs/flat/vue2-strongly-recommended.js
+++ b/lib/configs/flat/vue2-strongly-recommended.js
@@ -5,32 +5,34 @@
  */
 'use strict'
 const config = require('./vue2-essential.js')
-const { extendRules } = require('../../utils/config-helpers.js')
 
-const rules = {
-  'vue/attribute-hyphenation': 'warn',
-  'vue/component-definition-name-casing': 'warn',
-  'vue/first-attribute-linebreak': 'warn',
-  'vue/html-closing-bracket-newline': 'warn',
-  'vue/html-closing-bracket-spacing': 'warn',
-  'vue/html-end-tags': 'warn',
-  'vue/html-indent': 'warn',
-  'vue/html-quotes': 'warn',
-  'vue/html-self-closing': 'warn',
-  'vue/max-attributes-per-line': 'warn',
-  'vue/multiline-html-element-content-newline': 'warn',
-  'vue/mustache-interpolation-spacing': 'warn',
-  'vue/no-multi-spaces': 'warn',
-  'vue/no-spaces-around-equal-signs-in-attribute': 'warn',
-  'vue/no-template-shadow': 'warn',
-  'vue/one-component-per-file': 'warn',
-  'vue/prop-name-casing': 'warn',
-  'vue/require-default-prop': 'warn',
-  'vue/require-prop-types': 'warn',
-  'vue/singleline-html-element-content-newline': 'warn',
-  'vue/v-bind-style': 'warn',
-  'vue/v-on-style': 'warn',
-  'vue/v-slot-style': 'warn'
-}
-
-module.exports = extendRules(config, rules)
+module.exports = [
+  ...config,
+  {
+    rules: {
+      'vue/attribute-hyphenation': 'warn',
+      'vue/component-definition-name-casing': 'warn',
+      'vue/first-attribute-linebreak': 'warn',
+      'vue/html-closing-bracket-newline': 'warn',
+      'vue/html-closing-bracket-spacing': 'warn',
+      'vue/html-end-tags': 'warn',
+      'vue/html-indent': 'warn',
+      'vue/html-quotes': 'warn',
+      'vue/html-self-closing': 'warn',
+      'vue/max-attributes-per-line': 'warn',
+      'vue/multiline-html-element-content-newline': 'warn',
+      'vue/mustache-interpolation-spacing': 'warn',
+      'vue/no-multi-spaces': 'warn',
+      'vue/no-spaces-around-equal-signs-in-attribute': 'warn',
+      'vue/no-template-shadow': 'warn',
+      'vue/one-component-per-file': 'warn',
+      'vue/prop-name-casing': 'warn',
+      'vue/require-default-prop': 'warn',
+      'vue/require-prop-types': 'warn',
+      'vue/singleline-html-element-content-newline': 'warn',
+      'vue/v-bind-style': 'warn',
+      'vue/v-on-style': 'warn',
+      'vue/v-slot-style': 'warn'
+    }
+  }
+]
diff --git a/lib/configs/flat/vue3-essential.js b/lib/configs/flat/vue3-essential.js
index e8450635..b6338c91 100644
--- a/lib/configs/flat/vue3-essential.js
+++ b/lib/configs/flat/vue3-essential.js
@@ -5,89 +5,91 @@
  */
 'use strict'
 const config = require('./base.js')
-const { extendRules } = require('../../utils/config-helpers.js')
 
-const rules = {
-  'vue/multi-word-component-names': 'error',
-  'vue/no-arrow-functions-in-watch': 'error',
-  'vue/no-async-in-computed-properties': 'error',
-  'vue/no-child-content': 'error',
-  'vue/no-computed-properties-in-data': 'error',
-  'vue/no-deprecated-data-object-declaration': 'error',
-  'vue/no-deprecated-destroyed-lifecycle': 'error',
-  'vue/no-deprecated-dollar-listeners-api': 'error',
-  'vue/no-deprecated-dollar-scopedslots-api': 'error',
-  'vue/no-deprecated-events-api': 'error',
-  'vue/no-deprecated-filter': 'error',
-  'vue/no-deprecated-functional-template': 'error',
-  'vue/no-deprecated-html-element-is': 'error',
-  'vue/no-deprecated-inline-template': 'error',
-  'vue/no-deprecated-props-default-this': 'error',
-  'vue/no-deprecated-router-link-tag-prop': 'error',
-  'vue/no-deprecated-scope-attribute': 'error',
-  'vue/no-deprecated-slot-attribute': 'error',
-  'vue/no-deprecated-slot-scope-attribute': 'error',
-  'vue/no-deprecated-v-bind-sync': 'error',
-  'vue/no-deprecated-v-is': 'error',
-  'vue/no-deprecated-v-on-native-modifier': 'error',
-  'vue/no-deprecated-v-on-number-modifiers': 'error',
-  'vue/no-deprecated-vue-config-keycodes': 'error',
-  'vue/no-dupe-keys': 'error',
-  'vue/no-dupe-v-else-if': 'error',
-  'vue/no-duplicate-attributes': 'error',
-  'vue/no-export-in-script-setup': 'error',
-  'vue/no-expose-after-await': 'error',
-  'vue/no-lifecycle-after-await': 'error',
-  'vue/no-mutating-props': 'error',
-  'vue/no-parsing-error': 'error',
-  'vue/no-ref-as-operand': 'error',
-  'vue/no-reserved-component-names': 'error',
-  'vue/no-reserved-keys': 'error',
-  'vue/no-reserved-props': 'error',
-  'vue/no-shared-component-data': 'error',
-  'vue/no-side-effects-in-computed-properties': 'error',
-  'vue/no-template-key': 'error',
-  'vue/no-textarea-mustache': 'error',
-  'vue/no-unused-components': 'error',
-  'vue/no-unused-vars': 'error',
-  'vue/no-use-computed-property-like-method': 'error',
-  'vue/no-use-v-if-with-v-for': 'error',
-  'vue/no-useless-template-attributes': 'error',
-  'vue/no-v-for-template-key-on-child': 'error',
-  'vue/no-v-text-v-html-on-component': 'error',
-  'vue/no-watch-after-await': 'error',
-  'vue/prefer-import-from-vue': 'error',
-  'vue/require-component-is': 'error',
-  'vue/require-prop-type-constructor': 'error',
-  'vue/require-render-return': 'error',
-  'vue/require-slots-as-functions': 'error',
-  'vue/require-toggle-inside-transition': 'error',
-  'vue/require-v-for-key': 'error',
-  'vue/require-valid-default-prop': 'error',
-  'vue/return-in-computed-property': 'error',
-  'vue/return-in-emits-validator': 'error',
-  'vue/use-v-on-exact': 'error',
-  'vue/valid-attribute-name': 'error',
-  'vue/valid-define-emits': 'error',
-  'vue/valid-define-props': 'error',
-  'vue/valid-next-tick': 'error',
-  'vue/valid-template-root': 'error',
-  'vue/valid-v-bind': 'error',
-  'vue/valid-v-cloak': 'error',
-  'vue/valid-v-else-if': 'error',
-  'vue/valid-v-else': 'error',
-  'vue/valid-v-for': 'error',
-  'vue/valid-v-html': 'error',
-  'vue/valid-v-if': 'error',
-  'vue/valid-v-is': 'error',
-  'vue/valid-v-memo': 'error',
-  'vue/valid-v-model': 'error',
-  'vue/valid-v-on': 'error',
-  'vue/valid-v-once': 'error',
-  'vue/valid-v-pre': 'error',
-  'vue/valid-v-show': 'error',
-  'vue/valid-v-slot': 'error',
-  'vue/valid-v-text': 'error'
-}
-
-module.exports = extendRules(config, rules)
+module.exports = [
+  ...config,
+  {
+    rules: {
+      'vue/multi-word-component-names': 'error',
+      'vue/no-arrow-functions-in-watch': 'error',
+      'vue/no-async-in-computed-properties': 'error',
+      'vue/no-child-content': 'error',
+      'vue/no-computed-properties-in-data': 'error',
+      'vue/no-deprecated-data-object-declaration': 'error',
+      'vue/no-deprecated-destroyed-lifecycle': 'error',
+      'vue/no-deprecated-dollar-listeners-api': 'error',
+      'vue/no-deprecated-dollar-scopedslots-api': 'error',
+      'vue/no-deprecated-events-api': 'error',
+      'vue/no-deprecated-filter': 'error',
+      'vue/no-deprecated-functional-template': 'error',
+      'vue/no-deprecated-html-element-is': 'error',
+      'vue/no-deprecated-inline-template': 'error',
+      'vue/no-deprecated-props-default-this': 'error',
+      'vue/no-deprecated-router-link-tag-prop': 'error',
+      'vue/no-deprecated-scope-attribute': 'error',
+      'vue/no-deprecated-slot-attribute': 'error',
+      'vue/no-deprecated-slot-scope-attribute': 'error',
+      'vue/no-deprecated-v-bind-sync': 'error',
+      'vue/no-deprecated-v-is': 'error',
+      'vue/no-deprecated-v-on-native-modifier': 'error',
+      'vue/no-deprecated-v-on-number-modifiers': 'error',
+      'vue/no-deprecated-vue-config-keycodes': 'error',
+      'vue/no-dupe-keys': 'error',
+      'vue/no-dupe-v-else-if': 'error',
+      'vue/no-duplicate-attributes': 'error',
+      'vue/no-export-in-script-setup': 'error',
+      'vue/no-expose-after-await': 'error',
+      'vue/no-lifecycle-after-await': 'error',
+      'vue/no-mutating-props': 'error',
+      'vue/no-parsing-error': 'error',
+      'vue/no-ref-as-operand': 'error',
+      'vue/no-reserved-component-names': 'error',
+      'vue/no-reserved-keys': 'error',
+      'vue/no-reserved-props': 'error',
+      'vue/no-shared-component-data': 'error',
+      'vue/no-side-effects-in-computed-properties': 'error',
+      'vue/no-template-key': 'error',
+      'vue/no-textarea-mustache': 'error',
+      'vue/no-unused-components': 'error',
+      'vue/no-unused-vars': 'error',
+      'vue/no-use-computed-property-like-method': 'error',
+      'vue/no-use-v-if-with-v-for': 'error',
+      'vue/no-useless-template-attributes': 'error',
+      'vue/no-v-for-template-key-on-child': 'error',
+      'vue/no-v-text-v-html-on-component': 'error',
+      'vue/no-watch-after-await': 'error',
+      'vue/prefer-import-from-vue': 'error',
+      'vue/require-component-is': 'error',
+      'vue/require-prop-type-constructor': 'error',
+      'vue/require-render-return': 'error',
+      'vue/require-slots-as-functions': 'error',
+      'vue/require-toggle-inside-transition': 'error',
+      'vue/require-v-for-key': 'error',
+      'vue/require-valid-default-prop': 'error',
+      'vue/return-in-computed-property': 'error',
+      'vue/return-in-emits-validator': 'error',
+      'vue/use-v-on-exact': 'error',
+      'vue/valid-attribute-name': 'error',
+      'vue/valid-define-emits': 'error',
+      'vue/valid-define-props': 'error',
+      'vue/valid-next-tick': 'error',
+      'vue/valid-template-root': 'error',
+      'vue/valid-v-bind': 'error',
+      'vue/valid-v-cloak': 'error',
+      'vue/valid-v-else-if': 'error',
+      'vue/valid-v-else': 'error',
+      'vue/valid-v-for': 'error',
+      'vue/valid-v-html': 'error',
+      'vue/valid-v-if': 'error',
+      'vue/valid-v-is': 'error',
+      'vue/valid-v-memo': 'error',
+      'vue/valid-v-model': 'error',
+      'vue/valid-v-on': 'error',
+      'vue/valid-v-once': 'error',
+      'vue/valid-v-pre': 'error',
+      'vue/valid-v-show': 'error',
+      'vue/valid-v-slot': 'error',
+      'vue/valid-v-text': 'error'
+    }
+  }
+]
diff --git a/lib/configs/flat/vue3-recommended.js b/lib/configs/flat/vue3-recommended.js
index e39b86bc..eff60c5d 100644
--- a/lib/configs/flat/vue3-recommended.js
+++ b/lib/configs/flat/vue3-recommended.js
@@ -5,16 +5,18 @@
  */
 'use strict'
 const config = require('./vue3-strongly-recommended.js')
-const { extendRules } = require('../../utils/config-helpers.js')
 
-const rules = {
-  'vue/attributes-order': 'warn',
-  'vue/component-tags-order': 'warn',
-  'vue/no-lone-template': 'warn',
-  'vue/no-multiple-slot-args': 'warn',
-  'vue/no-v-html': 'warn',
-  'vue/order-in-components': 'warn',
-  'vue/this-in-template': 'warn'
-}
-
-module.exports = extendRules(config, rules)
+module.exports = [
+  ...config,
+  {
+    rules: {
+      'vue/attributes-order': 'warn',
+      'vue/component-tags-order': 'warn',
+      'vue/no-lone-template': 'warn',
+      'vue/no-multiple-slot-args': 'warn',
+      'vue/no-v-html': 'warn',
+      'vue/order-in-components': 'warn',
+      'vue/this-in-template': 'warn'
+    }
+  }
+]
diff --git a/lib/configs/flat/vue3-strongly-recommended.js b/lib/configs/flat/vue3-strongly-recommended.js
index ec71ac46..2d3bb2b6 100644
--- a/lib/configs/flat/vue3-strongly-recommended.js
+++ b/lib/configs/flat/vue3-strongly-recommended.js
@@ -5,40 +5,42 @@
  */
 'use strict'
 const config = require('./vue3-essential.js')
-const { extendRules } = require('../../utils/config-helpers.js')
 
-const rules = {
-  'vue/attribute-hyphenation': 'warn',
-  'vue/component-definition-name-casing': 'warn',
-  'vue/first-attribute-linebreak': 'warn',
-  'vue/html-closing-bracket-newline': 'warn',
-  'vue/html-closing-bracket-spacing': 'warn',
-  'vue/html-end-tags': 'warn',
-  'vue/html-indent': 'warn',
-  'vue/html-quotes': 'warn',
-  'vue/html-self-closing': 'warn',
-  'vue/max-attributes-per-line': 'warn',
-  'vue/multiline-html-element-content-newline': 'warn',
-  'vue/mustache-interpolation-spacing': 'warn',
-  'vue/no-multi-spaces': 'warn',
-  'vue/no-spaces-around-equal-signs-in-attribute': 'warn',
-  'vue/no-template-shadow': 'warn',
-  'vue/one-component-per-file': 'warn',
-  'vue/prop-name-casing': 'warn',
-  'vue/require-default-prop': 'warn',
-  'vue/require-explicit-emits': 'warn',
-  'vue/require-prop-types': 'warn',
-  'vue/singleline-html-element-content-newline': 'warn',
-  'vue/v-bind-style': 'warn',
-  'vue/v-on-event-hyphenation': [
-    'warn',
-    'always',
-    {
-      autofix: true
+module.exports = [
+  ...config,
+  {
+    rules: {
+      'vue/attribute-hyphenation': 'warn',
+      'vue/component-definition-name-casing': 'warn',
+      'vue/first-attribute-linebreak': 'warn',
+      'vue/html-closing-bracket-newline': 'warn',
+      'vue/html-closing-bracket-spacing': 'warn',
+      'vue/html-end-tags': 'warn',
+      'vue/html-indent': 'warn',
+      'vue/html-quotes': 'warn',
+      'vue/html-self-closing': 'warn',
+      'vue/max-attributes-per-line': 'warn',
+      'vue/multiline-html-element-content-newline': 'warn',
+      'vue/mustache-interpolation-spacing': 'warn',
+      'vue/no-multi-spaces': 'warn',
+      'vue/no-spaces-around-equal-signs-in-attribute': 'warn',
+      'vue/no-template-shadow': 'warn',
+      'vue/one-component-per-file': 'warn',
+      'vue/prop-name-casing': 'warn',
+      'vue/require-default-prop': 'warn',
+      'vue/require-explicit-emits': 'warn',
+      'vue/require-prop-types': 'warn',
+      'vue/singleline-html-element-content-newline': 'warn',
+      'vue/v-bind-style': 'warn',
+      'vue/v-on-event-hyphenation': [
+        'warn',
+        'always',
+        {
+          autofix: true
+        }
+      ],
+      'vue/v-on-style': 'warn',
+      'vue/v-slot-style': 'warn'
     }
-  ],
-  'vue/v-on-style': 'warn',
-  'vue/v-slot-style': 'warn'
-}
-
-module.exports = extendRules(config, rules)
+  }
+]
diff --git a/lib/index.js b/lib/index.js
index bc6c9a46..956eeaa4 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -7,6 +7,28 @@
 
 const plugin = {
   meta: require('./meta'),
+  configs: {
+    // eslintrc configs
+    base: require('./configs/base'),
+    essential: require('./configs/vue2-essential'),
+    'no-layout-rules': require('./configs/no-layout-rules'),
+    recommended: require('./configs/vue2-recommended'),
+    'strongly-recommended': require('./configs/vue2-strongly-recommended'),
+    'vue3-essential': require('./configs/vue3-essential'),
+    'vue3-recommended': require('./configs/vue3-recommended'),
+    'vue3-strongly-recommended': require('./configs/vue3-strongly-recommended'),
+
+    // flat configs
+    'flat/base': require('./configs/flat/base.js'),
+    'flat/vue2-essential': require('./configs/flat/vue2-essential.js'),
+    'flat/vue2-recommended': require('./configs/flat/vue2-recommended.js'),
+    'flat/vue2-strongly-recommended': require('./configs/flat/vue2-strongly-recommended.js'),
+
+    // in flat configs, non-prefixed config is for Vue 3 (unlike eslintrc configs)
+    'flat/essential': require('./configs/flat/vue3-essential.js'),
+    'flat/recommended': require('./configs/flat/vue3-recommended.js'),
+    'flat/strongly-recommended': require('./configs/flat/vue3-strongly-recommended.js')
+  },
   rules: {
     'array-bracket-newline': require('./rules/array-bracket-newline'),
     'array-bracket-spacing': require('./rules/array-bracket-spacing'),
@@ -251,7 +273,8 @@ const plugin = {
     'valid-v-text': require('./rules/valid-v-text')
   },
   processors: {
-    '.vue': require('./processor')
+    '.vue': require('./processor'),
+    vue: require('./processor')
   },
   environments: {
     // TODO Remove in the next major version
@@ -267,53 +290,4 @@ const plugin = {
   }
 }
 
-const baseConfig = { plugins: { vue: plugin } }
-
-plugin.configs = {
-  // eslintrc configs
-  base: require('./configs/base'),
-  essential: require('./configs/vue2-essential'),
-  'no-layout-rules': require('./configs/no-layout-rules'),
-  recommended: require('./configs/vue2-recommended'),
-  'strongly-recommended': require('./configs/vue2-strongly-recommended'),
-  'vue3-essential': require('./configs/vue3-essential'),
-  'vue3-recommended': require('./configs/vue3-recommended'),
-  'vue3-strongly-recommended': require('./configs/vue3-strongly-recommended'),
-
-  // flat configs
-  'flat/base': Object.assign({}, baseConfig, require('./configs/flat/base.js')),
-  'flat/vue2-essential': Object.assign(
-    {},
-    baseConfig,
-    require('./configs/flat/vue2-essential.js')
-  ),
-  'flat/vue2-recommended': Object.assign(
-    {},
-    baseConfig,
-    require('./configs/flat/vue2-recommended.js')
-  ),
-  'flat/vue2-strongly-recommended': Object.assign(
-    {},
-    baseConfig,
-    require('./configs/flat/vue2-strongly-recommended.js')
-  ),
-
-  // in flat configs, non-prefixed config is for Vue 3 (unlike eslintrc configs)
-  'flat/essential': Object.assign(
-    {},
-    baseConfig,
-    require('./configs/flat/vue3-essential.js')
-  ),
-  'flat/recommended': Object.assign(
-    {},
-    baseConfig,
-    require('./configs/flat/vue3-recommended.js')
-  ),
-  'flat/strongly-recommended': Object.assign(
-    {},
-    baseConfig,
-    require('./configs/flat/vue3-strongly-recommended.js')
-  )
-}
-
 module.exports = plugin
diff --git a/lib/utils/config-helpers.js b/lib/utils/config-helpers.js
deleted file mode 100644
index cfee2338..00000000
--- a/lib/utils/config-helpers.js
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * @fileoverview eslint config helpers
- * @author 唯然<weiran.zsd@outlook.com>
- */
-
-function extendRules(config, rules) {
-  const { rules: extendedRules = {}, ...rest } = config
-  return {
-    ...rest,
-    rules: {
-      ...extendedRules,
-      ...rules
-    }
-  }
-}
-
-module.exports = {
-  extendRules
-}
diff --git a/package.json b/package.json
index 23ca9bb7..8c6dff8c 100644
--- a/package.json
+++ b/package.json
@@ -8,6 +8,7 @@
     "start": "npm run test:base -- --watch --growl",
     "test:base": "mocha \"tests/lib/**/*.js\" --reporter dot",
     "test": "nyc npm run test:base -- \"tests/integrations/*.js\" --timeout 60000",
+    "test:integrations": "mocha \"tests/integrations/*.js\" --timeout 60000",
     "debug": "mocha --inspect \"tests/lib/**/*.js\" --reporter dot --timeout 60000",
     "cover": "npm run cover:test && npm run cover:report",
     "cover:test": "nyc npm run test:base -- --timeout 60000",
diff --git a/tools/lib/categories.js b/tools/lib/categories.js
index 5e340d61..c143fe41 100644
--- a/tools/lib/categories.js
+++ b/tools/lib/categories.js
@@ -52,10 +52,41 @@ for (const rule of rules) {
   }
 }
 
-module.exports = categoryIds
-  .map((categoryId) => ({
-    categoryId,
-    title: categoryTitles[categoryId],
-    rules: categoryRules[categoryId] || []
-  }))
-  .filter((category) => category.rules.length > 0)
+const CONFIG_NAME_CAPTIONS = {
+  base: ['"plugin:vue/base"', '*.configs["flat/base"]'],
+  'vue3-essential': [
+    '"plugin:vue/vue3-essential"',
+    '*.configs["flat/essential"]'
+  ],
+  'vue2-essential': [
+    '"plugin:vue/essential"',
+    '*.configs["flat/vue2-essential"]'
+  ],
+  'vue3-strongly-recommended': [
+    '"plugin:vue/vue3-strongly-recommended"',
+    '*.configs["flat/strongly-recommended"]'
+  ],
+  'vue2-strongly-recommended': [
+    '"plugin:vue/strongly-recommended"',
+    '*.configs["flat/vue2-strongly-recommended"]'
+  ],
+  'vue3-recommended': [
+    '"plugin:vue/vue3-recommended"',
+    '*.configs["flat/recommended"]'
+  ],
+  'vue2-recommended': [
+    '"plugin:vue/recommended"',
+    '*.configs["flat/vue2-recommended"]'
+  ]
+}
+
+module.exports = {
+  CONFIG_NAME_CAPTIONS,
+  categories: categoryIds
+    .map((categoryId) => ({
+      categoryId,
+      title: categoryTitles[categoryId],
+      rules: categoryRules[categoryId] || []
+    }))
+    .filter((category) => category.rules.length > 0)
+}
diff --git a/tools/update-docs-rules-index.js b/tools/update-docs-rules-index.js
index 017ffe17..46a5c4c8 100644
--- a/tools/update-docs-rules-index.js
+++ b/tools/update-docs-rules-index.js
@@ -9,6 +9,7 @@ const path = require('path')
 const rules = require('./lib/rules')
 const { getPresetIds, formatItems } = require('./lib/utils')
 const removedRules = require('../lib/removed-rules')
+const { CONFIG_NAME_CAPTIONS } = require('./lib/categories')
 
 const VUE3_EMOJI = ':three:'
 const VUE2_EMOJI = ':two:'
@@ -123,11 +124,11 @@ ${group.description}
 `
     }
     if (group.useMark) {
-      const presetsForVue3 = getPresetIds([group.categoryIdForVue3]).map(
-        (categoryId) => `\`"plugin:vue/${categoryId}"\``
+      const presetsForVue3 = getPresetIds([group.categoryIdForVue3]).flatMap(
+        (categoryId) => CONFIG_NAME_CAPTIONS[categoryId]?.map((c) => `\`${c}\``)
       )
       const presetsForVue2 = getPresetIds([group.categoryIdForVue2]).map(
-        (categoryId) => `\`"plugin:vue/${categoryId.replace(/^vue2-/, '')}"\`` // 'vue2-recommended' ->  'recommended'
+        (categoryId) => CONFIG_NAME_CAPTIONS[categoryId]?.map((c) => `\`${c}\``)
       )
       content += `
 - ${VUE3_EMOJI} Indicates that the rule is for Vue 3 and is included in ${formatItems(
diff --git a/tools/update-docs.js b/tools/update-docs.js
index e32d5a1d..74883ddb 100644
--- a/tools/update-docs.js
+++ b/tools/update-docs.js
@@ -23,6 +23,7 @@ const path = require('path')
 const rules = require('./lib/rules')
 const removedRules = require('../lib/removed-rules')
 const { getPresetIds, formatItems } = require('./lib/utils')
+const { CONFIG_NAME_CAPTIONS } = require('./lib/categories')
 
 const ROOT = path.resolve(__dirname, '../docs/rules')
 
@@ -122,10 +123,8 @@ class DocFile {
       }
     }
     if (meta.docs?.categories) {
-      const presets = getPresetIds(meta.docs.categories).map(
-        // non-prefixed configs are for vue2
-        // e.g. 'vue2-recommended' ->  'recommended'
-        (categoryId) => `\`"plugin:vue/${categoryId.replace(/^vue2-/, '')}"\``
+      const presets = getPresetIds(meta.docs.categories).flatMap((categoryId) =>
+        CONFIG_NAME_CAPTIONS[categoryId]?.map((c) => `\`${c}\``)
       )
 
       notes.push(`- :gear: This rule is included in ${formatItems(presets)}.`)
diff --git a/tools/update-lib-configs.js b/tools/update-lib-configs.js
index a5b8ced7..e3f7f963 100644
--- a/tools/update-lib-configs.js
+++ b/tools/update-lib-configs.js
@@ -12,7 +12,7 @@ This script updates `lib/configs/*.js` files from rule's meta data.
 const fs = require('fs')
 const path = require('path')
 const { FlatESLint } = require('eslint/use-at-your-own-risk')
-const categories = require('./lib/categories')
+const { categories } = require('./lib/categories')
 
 const errorCategories = new Set(['base', 'vue2-essential', 'vue3-essential'])
 
diff --git a/tools/update-lib-flat-configs.js b/tools/update-lib-flat-configs.js
index 1266b787..aed5c3f1 100644
--- a/tools/update-lib-flat-configs.js
+++ b/tools/update-lib-flat-configs.js
@@ -12,7 +12,7 @@ This script updates `lib/configs/flat/*.js` files from rule's meta data.
 const fs = require('fs')
 const path = require('path')
 const { FlatESLint } = require('eslint/use-at-your-own-risk')
-const categories = require('./lib/categories')
+const { categories } = require('./lib/categories')
 
 const errorCategories = new Set(['base', 'vue2-essential', 'vue3-essential'])
 
@@ -49,22 +49,41 @@ function formatRules(rules, categoryId) {
 
 function formatCategory(category) {
   const extendsCategoryId = extendsCategories[category.categoryId]
-  if (extendsCategoryId == null) {
+  if (category.categoryId === 'base') {
     return `/*
  * IMPORTANT!
  * This file has been automatically generated,
  * in order to update its content execute "npm run update"
  */
 const globals = require('globals')
-module.exports = {
-  languageOptions: {
-    parser: require('vue-eslint-parser'),
-    sourceType: 'module',
-    globals: globals.browser
+module.exports = [
+  {
+    plugins: {
+      get vue() {
+        return require('../../index')
+      }
+    },
+    languageOptions: {
+      sourceType: 'module',
+      globals: globals.browser
+    }
   },
-  rules: ${formatRules(category.rules, category.categoryId)}
-}
-
+  {
+    files: ['*.vue', '**/*.vue'],
+    plugins: {
+      get vue() {
+        return require('../../index')
+      }
+    },
+    languageOptions: {
+      parser: require('vue-eslint-parser'),
+      sourceType: 'module',
+      globals: globals.browser
+    },
+    rules: ${formatRules(category.rules, category.categoryId)},
+    processor: 'vue/vue'
+  }
+]
 `
   }
   return `/*
@@ -74,11 +93,13 @@ module.exports = {
  */
 'use strict'
 const config = require('./${extendsCategoryId}.js')
-const { extendRules } = require('../../utils/config-helpers.js')
-
-const rules = ${formatRules(category.rules, category.categoryId)}
 
-module.exports = extendRules(config, rules)
+module.exports = [
+  ...config,
+  {
+    rules: ${formatRules(category.rules, category.categoryId)},
+  }
+]
 `
 }
 
diff --git a/tools/update-lib-index.js b/tools/update-lib-index.js
index 399da68f..427fd197 100644
--- a/tools/update-lib-index.js
+++ b/tools/update-lib-index.js
@@ -25,13 +25,36 @@ const content = `/*
 
 const plugin = {
   meta: require('./meta'),
+  configs: {
+    // eslintrc configs
+    base: require('./configs/base'),
+    essential: require('./configs/vue2-essential'),
+    'no-layout-rules': require('./configs/no-layout-rules'),
+    recommended: require('./configs/vue2-recommended'),
+    'strongly-recommended': require('./configs/vue2-strongly-recommended'),
+    'vue3-essential': require('./configs/vue3-essential'),
+    'vue3-recommended': require('./configs/vue3-recommended'),
+    'vue3-strongly-recommended': require('./configs/vue3-strongly-recommended'),
+  
+    // flat configs
+    'flat/base': require('./configs/flat/base.js'),
+    'flat/vue2-essential': require('./configs/flat/vue2-essential.js'),
+    'flat/vue2-recommended': require('./configs/flat/vue2-recommended.js'),
+    'flat/vue2-strongly-recommended': require('./configs/flat/vue2-strongly-recommended.js'),
+  
+    // in flat configs, non-prefixed config is for Vue 3 (unlike eslintrc configs)
+    'flat/essential': require('./configs/flat/vue3-essential.js'),
+    'flat/recommended': require('./configs/flat/vue3-recommended.js'),
+    'flat/strongly-recommended': require('./configs/flat/vue3-strongly-recommended.js'),
+  },
   rules: {
     ${rules
       .map((rule) => `'${rule.name}': require('./rules/${rule.name}')`)
       .join(',\n')}
   },
   processors: {
-    '.vue': require('./processor')
+    '.vue': require('./processor'),
+    'vue': require('./processor')
   },
   environments: {
     // TODO Remove in the next major version
@@ -47,31 +70,6 @@ const plugin = {
   }
 }
 
-const baseConfig = {plugins: {vue: plugin}}
-
-plugin.configs = {
-  // eslintrc configs
-  base: require('./configs/base'),
-  essential: require('./configs/vue2-essential'),
-  'no-layout-rules': require('./configs/no-layout-rules'),
-  recommended: require('./configs/vue2-recommended'),
-  'strongly-recommended': require('./configs/vue2-strongly-recommended'),
-  'vue3-essential': require('./configs/vue3-essential'),
-  'vue3-recommended': require('./configs/vue3-recommended'),
-  'vue3-strongly-recommended': require('./configs/vue3-strongly-recommended'),
-
-  // flat configs
-  'flat/base': Object.assign({}, baseConfig, require('./configs/flat/base.js')),
-  'flat/vue2-essential': Object.assign({}, baseConfig, require('./configs/flat/vue2-essential.js')),
-  'flat/vue2-recommended': Object.assign({}, baseConfig, require('./configs/flat/vue2-recommended.js')),
-  'flat/vue2-strongly-recommended': Object.assign({}, baseConfig, require('./configs/flat/vue2-strongly-recommended.js')),
-
-  // in flat configs, non-prefixed config is for Vue 3 (unlike eslintrc configs)
-  'flat/essential': Object.assign({}, baseConfig, require('./configs/flat/vue3-essential.js')),
-  'flat/recommended': Object.assign({}, baseConfig, require('./configs/flat/vue3-recommended.js')),
-  'flat/strongly-recommended': Object.assign({}, baseConfig, require('./configs/flat/vue3-strongly-recommended.js')),
-}
-
 module.exports = plugin
 `
 fs.writeFileSync(filePath, content)


Test patch:
diff --git a/tests/eslint-compat.js b/tests/eslint-compat.js
index fe77994a..33a9b995 100644
--- a/tests/eslint-compat.js
+++ b/tests/eslint-compat.js
@@ -3,16 +3,25 @@ const eslint = require('eslint')
 const semver = require('semver')
 
 let ESLint = eslint.ESLint
+/** @type {typeof eslint.ESLint | null} */
+let FlatESLint = eslint.ESLint
 let Linter = eslint.Linter
 let RuleTester = eslint.RuleTester
 if (semver.lt(eslint.Linter.version, '9.0.0-0')) {
   ESLint = eslint.ESLint ? getESLintClassForV8() : getESLintClassForV6()
   Linter = getLinterClassForV8()
   RuleTester = getRuleTesterClassForV8()
+  try {
+    // @ts-ignore
+    FlatESLint = require('eslint/use-at-your-own-risk').FlatESLint
+  } catch {
+    FlatESLint = null
+  }
 }
 
 module.exports = {
   ESLint,
+  FlatESLint,
   RuleTester,
   Linter
 }
diff --git a/tests/integrations/flat-config.js b/tests/integrations/flat-config.js
new file mode 100644
index 00000000..df519002
--- /dev/null
+++ b/tests/integrations/flat-config.js
@@ -0,0 +1,42 @@
+'use strict'
+
+const { strict: assert } = require('assert')
+const cp = require('child_process')
+const path = require('path')
+const semver = require('semver')
+
+const ESLINT = `.${path.sep}node_modules${path.sep}.bin${path.sep}eslint`
+
+describe('Integration with flat config', () => {
+  let originalCwd
+
+  before(() => {
+    originalCwd = process.cwd()
+    process.chdir(path.join(__dirname, 'flat-config'))
+    cp.execSync('npm i -f', { stdio: 'inherit' })
+  })
+  after(() => {
+    process.chdir(originalCwd)
+  })
+
+  it('should lint without errors', () => {
+    if (
+      !semver.satisfies(
+        process.version,
+        require(
+          path.join(__dirname, 'flat-config/node_modules/eslint/package.json')
+        ).engines.node
+      )
+    ) {
+      return
+    }
+
+    const result = JSON.parse(
+      cp.execSync(`${ESLINT} a.vue --format=json`, {
+        encoding: 'utf8'
+      })
+    )
+    assert.strictEqual(result.length, 1)
+    assert.deepStrictEqual(result[0].messages, [])
+  })
+})
diff --git a/tests/integrations/flat-config/.npmrc b/tests/integrations/flat-config/.npmrc
new file mode 100644
index 00000000..43c97e71
--- /dev/null
+++ b/tests/integrations/flat-config/.npmrc
@@ -0,0 +1,1 @@
+package-lock=false
diff --git a/tests/integrations/flat-config/a.vue b/tests/integrations/flat-config/a.vue
new file mode 100644
index 00000000..0470d17d
--- /dev/null
+++ b/tests/integrations/flat-config/a.vue
@@ -0,0 +1,12 @@
+
+<template>
+  <!-- eslint-disable -->
+  <div id id="a">Hello</div>
+</template>
+
+<script>
+import B from './b.vue'
+export default {
+  components: { B }
+}
+</script>
diff --git a/tests/integrations/flat-config/eslint.config.js b/tests/integrations/flat-config/eslint.config.js
new file mode 100644
index 00000000..9fed1e61
--- /dev/null
+++ b/tests/integrations/flat-config/eslint.config.js
@@ -0,0 +1,9 @@
+const plugin = require('eslint-plugin-vue')
+module.exports = [
+  ...plugin.configs['flat/base'],
+  {
+    rules: {
+      'vue/no-duplicate-attributes': 'error'
+    }
+  }
+]
diff --git a/tests/integrations/flat-config/package.json b/tests/integrations/flat-config/package.json
new file mode 100644
index 00000000..e46b5e1b
--- /dev/null
+++ b/tests/integrations/flat-config/package.json
@@ -0,0 +1,13 @@
+{
+  "private": true,
+  "name": "integration-test-for-flat-config",
+  "version": "1.0.0",
+  "description": "Integration test for flat config",
+  "scripts": {},
+  "keywords": [],
+  "license": "MIT",
+  "dependencies": {
+    "eslint": "^9.0.0-0",
+    "eslint-plugin-vue": "file:../../.."
+  }
+}
diff --git a/tests/lib/configs/flat.js b/tests/lib/configs/flat.js
index 7d9a97d2..51449953 100644
--- a/tests/lib/configs/flat.js
+++ b/tests/lib/configs/flat.js
@@ -7,24 +7,74 @@
 
 const plugin = require('../../../lib/index')
 const { strict: assert } = require('assert') // node v14 does not support 'assert/strict'
+const { FlatESLint } = require('../../eslint-compat')
+
+function mergeConfig(configs) {
+  let config = { rules: {}, plugins: {} }
+  for (const item of configs) {
+    config = {
+      ...config,
+      ...item,
+      plugins: {
+        ...config.plugins,
+        ...item?.plugins
+      },
+      rules: {
+        ...config.rules,
+        ...item?.rules
+      }
+    }
+  }
+  return config
+}
 
 describe('flat configs', () => {
   it('should export base config', () => {
     const base = plugin.configs['flat/base']
     assert.ok(base)
     assert.equal(typeof base, 'object')
-    assert.strictEqual(base.plugins.vue, plugin)
-    assert.strictEqual(base.rules['vue/comment-directive'], 'error')
+
+    const forVue = mergeConfig(
+      base.filter((config) => config.files?.includes('*.vue') || !config.files)
+    )
+    assert.strictEqual(forVue.plugins.vue, plugin)
+    assert.strictEqual(forVue.processor, 'vue/vue')
+    assert.strictEqual(forVue.rules['vue/comment-directive'], 'error')
+
+    const forOtherThanVue = mergeConfig(
+      base.filter((config) => !config.files?.includes('*.vue'))
+    )
+    assert.strictEqual(forOtherThanVue.plugins.vue, plugin)
+    assert.strictEqual(
+      forOtherThanVue.rules['vue/comment-directive'],
+      undefined
+    )
   })
 
   it('should export essential config', () => {
     const essential = plugin.configs['flat/essential']
     assert.ok(essential)
     assert.equal(typeof essential, 'object')
-    assert.strictEqual(essential.plugins.vue, plugin)
-    assert.strictEqual(essential.rules['vue/comment-directive'], 'error')
+
+    const forVue = mergeConfig(
+      essential.filter(
+        (config) => config.files?.includes('*.vue') || !config.files
+      )
+    )
+    assert.strictEqual(forVue.plugins.vue, plugin)
+    assert.strictEqual(forVue.rules['vue/comment-directive'], 'error')
+    assert.strictEqual(forVue.rules['vue/multi-word-component-names'], 'error')
+
+    const forOtherThanVue = mergeConfig(
+      essential.filter((config) => !config.files?.includes('*.vue'))
+    )
+    assert.strictEqual(forOtherThanVue.plugins.vue, plugin)
     assert.strictEqual(
-      essential.rules['vue/multi-word-component-names'],
+      forOtherThanVue.rules['vue/comment-directive'],
+      undefined
+    )
+    assert.strictEqual(
+      forOtherThanVue.rules['vue/multi-word-component-names'],
       'error'
     )
   })
@@ -33,13 +83,26 @@ describe('flat configs', () => {
     const stronglyRecommended = plugin.configs['flat/vue2-strongly-recommended']
     assert.ok(stronglyRecommended)
     assert.equal(typeof stronglyRecommended, 'object')
-    assert.strictEqual(stronglyRecommended.plugins.vue, plugin)
+
+    const forVue = mergeConfig(
+      stronglyRecommended.filter(
+        (config) => config.files?.includes('*.vue') || !config.files
+      )
+    )
+    assert.strictEqual(forVue.plugins.vue, plugin)
+    assert.strictEqual(forVue.rules['vue/comment-directive'], 'error')
+    assert.strictEqual(forVue.rules['vue/multi-word-component-names'], 'error')
+
+    const forOtherThanVue = mergeConfig(
+      stronglyRecommended.filter((config) => !config.files?.includes('*.vue'))
+    )
+    assert.strictEqual(forOtherThanVue.plugins.vue, plugin)
     assert.strictEqual(
-      stronglyRecommended.rules['vue/comment-directive'],
-      'error'
+      forOtherThanVue.rules['vue/comment-directive'],
+      undefined
     )
     assert.strictEqual(
-      stronglyRecommended.rules['vue/multi-word-component-names'],
+      forOtherThanVue.rules['vue/multi-word-component-names'],
       'error'
     )
   })
@@ -48,23 +111,56 @@ describe('flat configs', () => {
     const recommended = plugin.configs['flat/recommended']
     assert.ok(recommended)
     assert.equal(typeof recommended, 'object')
-    assert.strictEqual(recommended.plugins.vue, plugin)
-    assert.strictEqual(recommended.rules['vue/comment-directive'], 'error')
+
+    const forVue = mergeConfig(
+      recommended.filter(
+        (config) => config.files?.includes('*.vue') || !config.files
+      )
+    )
+    assert.strictEqual(forVue.plugins.vue, plugin)
+    assert.strictEqual(forVue.rules['vue/comment-directive'], 'error')
+    assert.strictEqual(forVue.rules['vue/multi-word-component-names'], 'error')
+    assert.strictEqual(forVue.rules['vue/attributes-order'], 'warn')
+
+    const forOtherThanVue = mergeConfig(
+      recommended.filter((config) => !config.files?.includes('*.vue'))
+    )
+    assert.strictEqual(forOtherThanVue.plugins.vue, plugin)
+    assert.strictEqual(
+      forOtherThanVue.rules['vue/comment-directive'],
+      undefined
+    )
     assert.strictEqual(
-      recommended.rules['vue/multi-word-component-names'],
+      forOtherThanVue.rules['vue/multi-word-component-names'],
       'error'
     )
-    assert.strictEqual(recommended.rules['vue/attributes-order'], 'warn')
+    assert.strictEqual(forOtherThanVue.rules['vue/attributes-order'], 'warn')
   })
 
   it('should export vue2-essential config', () => {
     const essential = plugin.configs['flat/vue2-essential']
     assert.ok(essential)
     assert.equal(typeof essential, 'object')
-    assert.strictEqual(essential.plugins.vue, plugin)
-    assert.strictEqual(essential.rules['vue/comment-directive'], 'error')
+
+    const forVue = mergeConfig(
+      essential.filter(
+        (config) => config.files?.includes('*.vue') || !config.files
+      )
+    )
+    assert.strictEqual(forVue.plugins.vue, plugin)
+    assert.strictEqual(forVue.rules['vue/comment-directive'], 'error')
+    assert.strictEqual(forVue.rules['vue/multi-word-component-names'], 'error')
+
+    const forOtherThanVue = mergeConfig(
+      essential.filter((config) => !config.files?.includes('*.vue'))
+    )
+    assert.strictEqual(forOtherThanVue.plugins.vue, plugin)
+    assert.strictEqual(
+      forOtherThanVue.rules['vue/comment-directive'],
+      undefined
+    )
     assert.strictEqual(
-      essential.rules['vue/multi-word-component-names'],
+      forOtherThanVue.rules['vue/multi-word-component-names'],
       'error'
     )
   })
@@ -73,13 +169,26 @@ describe('flat configs', () => {
     const stronglyRecommended = plugin.configs['flat/vue2-strongly-recommended']
     assert.ok(stronglyRecommended)
     assert.equal(typeof stronglyRecommended, 'object')
-    assert.strictEqual(stronglyRecommended.plugins.vue, plugin)
+
+    const forVue = mergeConfig(
+      stronglyRecommended.filter(
+        (config) => config.files?.includes('*.vue') || !config.files
+      )
+    )
+    assert.strictEqual(forVue.plugins.vue, plugin)
+    assert.strictEqual(forVue.rules['vue/comment-directive'], 'error')
+    assert.strictEqual(forVue.rules['vue/multi-word-component-names'], 'error')
+
+    const forOtherThanVue = mergeConfig(
+      stronglyRecommended.filter((config) => !config.files?.includes('*.vue'))
+    )
+    assert.strictEqual(forOtherThanVue.plugins.vue, plugin)
     assert.strictEqual(
-      stronglyRecommended.rules['vue/comment-directive'],
-      'error'
+      forOtherThanVue.rules['vue/comment-directive'],
+      undefined
     )
     assert.strictEqual(
-      stronglyRecommended.rules['vue/multi-word-component-names'],
+      forOtherThanVue.rules['vue/multi-word-component-names'],
       'error'
     )
   })
@@ -88,12 +197,98 @@ describe('flat configs', () => {
     const recommended = plugin.configs['flat/vue2-recommended']
     assert.ok(recommended)
     assert.equal(typeof recommended, 'object')
-    assert.strictEqual(recommended.plugins.vue, plugin)
-    assert.strictEqual(recommended.rules['vue/comment-directive'], 'error')
+
+    const forVue = mergeConfig(
+      recommended.filter(
+        (config) => config.files?.includes('*.vue') || !config.files
+      )
+    )
+    assert.strictEqual(forVue.plugins.vue, plugin)
+    assert.strictEqual(forVue.rules['vue/comment-directive'], 'error')
+    assert.strictEqual(forVue.rules['vue/multi-word-component-names'], 'error')
+    assert.strictEqual(forVue.rules['vue/attributes-order'], 'warn')
+
+    const forOtherThanVue = mergeConfig(
+      recommended.filter((config) => !config.files?.includes('*.vue'))
+    )
+    assert.strictEqual(forOtherThanVue.plugins.vue, plugin)
+    assert.strictEqual(
+      forOtherThanVue.rules['vue/comment-directive'],
+      undefined
+    )
     assert.strictEqual(
-      recommended.rules['vue/multi-word-component-names'],
+      forOtherThanVue.rules['vue/multi-word-component-names'],
       'error'
     )
-    assert.strictEqual(recommended.rules['vue/attributes-order'], 'warn')
+    assert.strictEqual(forOtherThanVue.rules['vue/attributes-order'], 'warn')
+  })
+
+  it('should work the suppress comments with base config', async () => {
+    if (!FlatESLint) return
+    const base = plugin.configs['flat/base']
+    const eslint = new FlatESLint({
+      overrideConfigFile: true,
+      overrideConfig: [
+        ...base,
+        {
+          rules: {
+            'vue/no-duplicate-attributes': 'error'
+          }
+        }
+      ]
+    })
+    const code = `
+      <template>
+        <!-- eslint-disable -->
+        <div id id="a">Hello</div>
+      </template>
+    `
+    const result = await eslint.lintText(code, { filePath: 'test.vue' })
+
+    assert.deepStrictEqual(result[0].messages, [])
+  })
+
+  it('should work the suppress comments with recommended config', async () => {
+    if (!FlatESLint) return
+    const recommended = plugin.configs['flat/recommended']
+    const eslint = new FlatESLint({
+      overrideConfigFile: true,
+      overrideConfig: recommended
+    })
+    const code = `
+<template>
+  <!-- eslint-disable -->
+  <div id id="a">Hello</div>
+</template>
+`
+    const result = await eslint.lintText(code, { filePath: 'MyComponent.vue' })
+
+    assert.deepStrictEqual(result[0].messages, [])
+  })
+
+  it('should error with recommended config', async () => {
+    if (!FlatESLint) return
+    const recommended = plugin.configs['flat/recommended']
+    const eslint = new FlatESLint({
+      overrideConfigFile: true,
+      overrideConfig: recommended
+    })
+    const code = `
+<template>
+  <div id id="a">Hello</div>
+</template>
+`
+    const result = await eslint.lintText(code, { filePath: 'MyComponent.vue' })
+
+    assert.deepStrictEqual(
+      result[0].messages.map((message) => message.ruleId),
+      [
+        'vue/no-parsing-error',
+        'vue/max-attributes-per-line',
+        'vue/no-duplicate-attributes',
+        'vue/singleline-html-element-content-newline',
+        'vue/singleline-html-element-content-newline'
+      ]
+    )
   })
 })