Skip to content

Commit 5c69086

Browse files
committed
feat: add TypeScript IntelliSense support with eslint-typegen
close #2757
1 parent ebf6cb5 commit 5c69086

File tree

3 files changed

+21
-13
lines changed

3 files changed

+21
-13
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ yarn-error.log
1313
/docs/.vitepress/.temp
1414
/docs/.vitepress/cache
1515
typings/eslint/lib/rules
16+
eslint-typegen.d.ts

eslint.config.js renamed to eslint.config.mjs

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
1-
'use strict'
1+
import globals from 'globals'
2+
import eslintPluginEslintPlugin from 'eslint-plugin-eslint-plugin/configs/all'
3+
import eslintPluginJsonc from 'eslint-plugin-jsonc'
4+
import eslintPluginNodeDependencies from 'eslint-plugin-node-dependencies'
5+
import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'
6+
import eslintPluginUnicorn from 'eslint-plugin-unicorn'
7+
import vueEslintParser from 'vue-eslint-parser'
8+
import noInvalidMeta from './eslint-internal-rules/no-invalid-meta.js'
9+
import noInvalidMetaDocsCategories from './eslint-internal-rules/no-invalid-meta-docs-categories.js'
10+
import requireEslintCommunity from './eslint-internal-rules/require-eslint-community.js'
211

3-
const globals = require('globals')
4-
const eslintPluginEslintPlugin = require('eslint-plugin-eslint-plugin/configs/all')
5-
const eslintPluginJsonc = require('eslint-plugin-jsonc')
6-
const eslintPluginNodeDependencies = require('eslint-plugin-node-dependencies')
7-
const eslintPluginPrettierRecommended = require('eslint-plugin-prettier/recommended')
8-
const eslintPluginUnicorn = require('eslint-plugin-unicorn')
12+
// @ts-check
13+
/// <reference path="./eslint-typegen.d.ts" />
14+
import typegen from 'eslint-typegen'
915

10-
module.exports = [
16+
export default typegen([
1117
{
1218
ignores: [
1319
'.nyc_output',
@@ -33,9 +39,9 @@ module.exports = [
3339
plugins: {
3440
internal: {
3541
rules: {
36-
'no-invalid-meta': require('./eslint-internal-rules/no-invalid-meta'),
37-
'no-invalid-meta-docs-categories': require('./eslint-internal-rules/no-invalid-meta-docs-categories'),
38-
'require-eslint-community': require('./eslint-internal-rules/require-eslint-community')
42+
'no-invalid-meta': noInvalidMeta,
43+
'no-invalid-meta-docs-categories': noInvalidMetaDocsCategories,
44+
'require-eslint-community': requireEslintCommunity
3945
}
4046
}
4147
}
@@ -213,7 +219,7 @@ module.exports = [
213219
languageOptions: {
214220
ecmaVersion: 'latest',
215221
sourceType: 'module',
216-
parser: require('vue-eslint-parser')
222+
parser: vueEslintParser
217223
}
218224
},
219225
{
@@ -241,4 +247,4 @@ module.exports = [
241247
'prettier/prettier': 'off'
242248
}
243249
}
244-
]
250+
])

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@
9898
"eslint-plugin-prettier": "^5.2.1",
9999
"eslint-plugin-unicorn": "^56.0.0",
100100
"eslint-plugin-vue": "file:.",
101+
"eslint-typegen": "^2.2.0",
101102
"eslint-visitor-keys": "^4.2.0",
102103
"espree": "^10.4.0",
103104
"events": "^3.3.0",

0 commit comments

Comments
 (0)