1+ /* eslint-disable @stylistic/js/quotes */
2+ /* eslint-disable @stylistic/js/indent */
3+
4+ // import * as cssPlugin from "eslint-plugin-css";
5+ import css from "@eslint/css" ;
6+ import eslintPluginJsonc from 'eslint-plugin-jsonc' ;
7+ import json from "@eslint/json" ;
8+ import noJquery from "eslint-plugin-no-jquery" ;
9+ import * as regexpPlugin from "eslint-plugin-regexp" ;
10+ import markdown from "@eslint/markdown" ;
11+ import globals from "globals" ;
12+ import js from "@eslint/js" ;
13+ import stylisticJs from "@stylistic/eslint-plugin-js" ;
14+
15+
16+ export default [
17+ {
18+ files : [ '**/*.js' , '**/*.mjs' ] ,
19+ ...js . configs . recommended
20+ } ,
21+ // cssPlugin.configs["flat/recommended"],
22+ ...eslintPluginJsonc . configs [ 'flat/recommended-with-jsonc' ] ,
23+ {
24+ files : [ '**/*.js' , '**/*.mjs' ] ,
25+ ...regexpPlugin . configs [ "flat/recommended" ] ,
26+ } ,
27+ ...markdown . configs . recommended ,
28+ {
29+ files : [ "**/*.js" ] ,
30+ ignores : [ "**/*.min.js" ] ,
31+
32+ plugins : {
33+ "@stylistic/js" : stylisticJs
34+ } ,
35+
36+ linterOptions : {
37+ reportUnusedDisableDirectives : true ,
38+ } ,
39+
40+ languageOptions : {
41+ globals : {
42+ ...globals . browser ,
43+ ...globals . greasemonkey ,
44+ ...globals . jquery ,
45+ } ,
46+
47+ ecmaVersion : "latest" ,
48+ sourceType : "module" ,
49+
50+
51+ parserOptions : {
52+ ecmaFeatures : {
53+ "globalReturn " : true ,
54+ impliedStrict : true ,
55+ } ,
56+ } ,
57+ } ,
58+
59+ rules : {
60+ complexity : [ "warn" , 20 ] ,
61+ eqeqeq : "warn" ,
62+ "func-style" : "off" ,
63+
64+ "@stylistic/js/indent" : [ "warn" , "tab" , {
65+ ignoreComments : false ,
66+ SwitchCase : 1 ,
67+ } ] ,
68+
69+ "@stylistic/js/linebreak-style" : [ "warn" , "unix" ] ,
70+ "@stylistic/js/max-len" : "off" ,
71+ "@stylistic/js/max-statements-per-line" : "off" ,
72+ "new-cap" : "off" ,
73+ "no-alert" : "warn" ,
74+ "no-console" : "warn" ,
75+ "no-dupe-keys" : "warn" ,
76+ "@stylistic/js/no-extra-semi" : "warn" ,
77+ "no-inline-comments" : "off" ,
78+ "no-magic-numbers" : "off" ,
79+ "no-misleading-character-class" : "warn" ,
80+ "@stylistic/js/no-mixed-spaces-and-tabs" : "warn" ,
81+ "@stylistic/js/no-multiple-empty-lines" : "off" ,
82+ "@stylistic/js/no-tabs" : "off" ,
83+ "no-unused-labels" : "warn" ,
84+
85+ "no-unused-vars" : [ "warn" , {
86+ vars : "all" ,
87+ args : "after-used" ,
88+ } ] ,
89+
90+ "no-useless-escape" : "warn" ,
91+ "@stylistic/js/padded-blocks" : "off" ,
92+
93+ "@stylistic/js/quotes" : [ "warn" , "single" , {
94+ allowTemplateLiterals : true ,
95+ } ] ,
96+
97+ "require-jsdoc" : "off" ,
98+ "require-unicode-regexp" : "off" ,
99+ "@stylistic/js/semi" : [ "warn" , "always" ] ,
100+ "@stylistic/js/space-before-function-paren" : "off" ,
101+ "unicode-bom" : [ "warn" , "never" ] ,
102+ } ,
103+
104+ } ,
105+
106+
107+ // https://github.com/eslint/json#usage
108+ {
109+ plugins : {
110+ json,
111+ } ,
112+ } ,
113+ // lint JSON files // (from: https://github.com/eslint/json#recommended-configuration)
114+ {
115+ files : [ "**/*.json" ] ,
116+ language : "json/json" ,
117+ ...json . configs . recommended ,
118+ } ,
119+
120+ // lint JSON-C files
121+ {
122+ // files: ["**/*.jsonc"],
123+ files : [ "**/*.jsonc" , ".vscode/*.json" ] , // https://github.com/eslint/json/pull/11
124+ language : "json/jsonc" ,
125+ ...json . configs . recommended ,
126+ } ,
127+
128+
129+
130+ // https://github.com/eslint/markdown#configuring
131+ {
132+ // 1. Add the plugin
133+ plugins : {
134+ markdown
135+ }
136+ } ,
137+
138+ // https://www.npmjs.com/package/eslint-plugin-markdown
139+ // https://eslint.org/docs/latest/use/configure/plugins
140+ // https://github.com/eslint/json
141+ {
142+ // 2. Enable the Markdown processor for all .md files.
143+ files : [ "**/*.md" ] ,
144+ // files: ["**/*.md/*.js"],
145+ // plugins: {
146+ // markdown
147+ // },
148+ processor : "markdown/markdown"
149+ } ,
150+ {
151+ // // 3. Optionally, customize the configuration ESLint uses for ```js
152+ // // fenced code blocks inside .md files.
153+ files : [ "**/*.md/*.js" ] ,
154+ rules : {
155+ // ...
156+
157+ // 2. Disable other rules.
158+ // "no-console": "off",
159+ // "import/no-unresolved": "off"
160+ }
161+ } ,
162+
163+
164+
165+
166+
167+
168+
169+
170+ // https://eslint.org/blog/2025/02/eslint-css-support/ [NEW ADDITION 20/2/2025]
171+ //
172+ // lint css files
173+ {
174+ files : [ "**/*.css" ] ,
175+ plugins : {
176+ css,
177+ } ,
178+ language : "css/css" ,
179+ rules : {
180+ "css/no-duplicate-imports" : "error" ,
181+ } ,
182+ } ,
183+
184+
185+
186+
187+ // https://eslint.org/docs/latest/use/configure/ignore
188+ // https://eslint.org/docs/latest/use/configure/migration-guide#ignoring-files
189+ {
190+ // Note: there should be no other properties in this object
191+ ignores : [
192+
193+ "node_modules/*" ,
194+ "**/*.min.js" ,
195+ "package-lock.json"
196+
197+ ]
198+
199+ }
200+
201+
202+
203+
204+
205+
206+
207+
208+ ] ;
0 commit comments