linted 36.1.0 → 37.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.markdownlint.jsonc +7 -3
- package/README.md +89 -80
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +1 -1
- package/dprint.jsonc +233 -0
- package/package.json +4 -6
- package/src/index.ts +0 -2
package/.markdownlint.jsonc
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
// #region
|
|
2
|
+
// #region v40.0.0
|
|
3
3
|
"$schema": "https://gist.githubusercontent.com/jimmy-zhening-luo/e0d6b5715f0df18bc462f752520bd485/raw",
|
|
4
4
|
"$help": {
|
|
5
5
|
"link": "https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md",
|
|
@@ -12,14 +12,14 @@
|
|
|
12
12
|
"ul-style": false /* MD004 */,
|
|
13
13
|
"list-indent": true /* MD005 */,
|
|
14
14
|
"ul-indent": {
|
|
15
|
-
"indent":
|
|
15
|
+
"indent": 2,
|
|
16
16
|
} /* MD007 */,
|
|
17
17
|
"no-trailing-spaces": {
|
|
18
18
|
"br_spaces": 0,
|
|
19
19
|
"strict": true,
|
|
20
20
|
} /* MD009 */,
|
|
21
21
|
"no-hard-tabs": {
|
|
22
|
-
"spaces_per_tab":
|
|
22
|
+
"spaces_per_tab": 2,
|
|
23
23
|
"ignore_code_languages": [],
|
|
24
24
|
} /* MD010 */,
|
|
25
25
|
"no-reversed-links": true /* MD011 */,
|
|
@@ -94,4 +94,8 @@
|
|
|
94
94
|
"table-column-count": true /* MD056 */,
|
|
95
95
|
"blanks-around-tables": true /* MD058 */,
|
|
96
96
|
"descriptive-link-text": false /* MD059 */,
|
|
97
|
+
"table-column-style": {
|
|
98
|
+
"style": "aligned",
|
|
99
|
+
"aligned_delimiter": true /* implicitly true when style:aligned */,
|
|
100
|
+
} /* MD060 */,
|
|
97
101
|
}
|
package/README.md
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# [`linted`](https://www.npmjs.com/package/linted)
|
|
2
|
+
|
|
2
3
|
[](https://github.com/jimmy-zhening-luo/linted/actions/workflows/RELEASE.yml)
|
|
3
4
|
|
|
4
5
|
> [!CAUTION]
|
|
@@ -6,7 +7,7 @@
|
|
|
6
7
|
|
|
7
8
|
---
|
|
8
9
|
|
|
9
|
-
[ESLint](https://eslint.org) mono-plugin bundler with strict, opinionated defaults for
|
|
10
|
+
[ESLint](https://eslint.org) mono-plugin bundler with strict, opinionated defaults for JavaScript, TypeScript, Svelte, HTML, Tailwind/CSS, JSON, JSONC, YAML, and Mocha.
|
|
10
11
|
|
|
11
12
|
1. [Languages](#languages)
|
|
12
13
|
2. [Features](#features)
|
|
@@ -18,12 +19,13 @@
|
|
|
18
19
|
## Languages
|
|
19
20
|
|
|
20
21
|
### Web
|
|
22
|
+
|
|
21
23
|
> [!NOTE]
|
|
22
24
|
> _See language support __[roadmap](#roadmap).___
|
|
23
25
|
|
|
24
|
-
- __[JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript):__ [
|
|
25
|
-
- __[TypeScript](https://www.typescriptlang.org):__ [`@typescript-eslint`](https://typescript-eslint.io/) + [
|
|
26
|
-
- __[Svelte](https://svelte.dev):__ [`eslint-plugin-svelte`](https://sveltejs.github.io/eslint-plugin-svelte/) + [`@typescript-eslint`](https://typescript-eslint.io/) + [
|
|
26
|
+
- __[JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript):__ [`eslint`](https://eslint.org)
|
|
27
|
+
- __[TypeScript](https://www.typescriptlang.org):__ [`@typescript-eslint`](https://typescript-eslint.io/) + [`eslint`](https://eslint.org)
|
|
28
|
+
- __[Svelte](https://svelte.dev):__ [`eslint-plugin-svelte`](https://sveltejs.github.io/eslint-plugin-svelte/) + [`@typescript-eslint`](https://typescript-eslint.io/) + [`eslint`](https://eslint.org)
|
|
27
29
|
- __[HTML](https://developer.mozilla.org/en-US/docs/Web/HTML):__ [`@html-eslint`](https://html-eslint.org/)
|
|
28
30
|
|
|
29
31
|
### Data
|
|
@@ -31,38 +33,35 @@
|
|
|
31
33
|
- __[JSON](https://json.org) & [JSONC](https://code.visualstudio.com/docs/languages/json#_json-with-comments):__ [`eslint-plugin-jsonc`](https://ota-meshi.github.io/eslint-plugin-jsonc/)
|
|
32
34
|
- __[YAML](https://redhat.com/en/topics/automation/what-is-yaml):__ [`eslint-plugin-yml`](https://ota-meshi.github.io/eslint-plugin-yml/)
|
|
33
35
|
|
|
34
|
-
### Library
|
|
35
|
-
|
|
36
|
-
- __[Mocha](https://mochajs.org/):__ [`eslint-plugin-mocha`](https://github.com/lo1tuma/eslint-plugin-mocha) + [`@typescript-eslint`](https://typescript-eslint.io/) + [`@stylistic`](https://eslint.style) + [`eslint`](https://eslint.org)
|
|
37
|
-
|
|
38
36
|
## Features
|
|
39
37
|
|
|
40
38
|
### Zero-Dependency
|
|
39
|
+
|
|
41
40
|
No need to install 17 plugins and 12 parsers: each language's latest plugin is bundled and configured.
|
|
42
41
|
|
|
43
42
|
### Zero-Config
|
|
43
|
+
|
|
44
44
|
No need to remember each plugin's `parserOptions`; you won't have to do _this_ just to enable Svelte linting:
|
|
45
45
|
|
|
46
46
|
```javascript
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
processor: "svelte/svelte",
|
|
47
|
+
// lint TypeScript blocks in Svelte
|
|
48
|
+
plugins: {
|
|
49
|
+
"@typescript-eslint": ts,
|
|
50
|
+
svelte,
|
|
51
|
+
},
|
|
52
|
+
languageOptions: {
|
|
53
|
+
ecmaVersion: "latest",
|
|
54
|
+
sourceType: "module",
|
|
55
|
+
parser: svelteParser,
|
|
56
|
+
parserOptions: {
|
|
57
|
+
parser: tsParser,
|
|
58
|
+
ecmaVersion: "latest",
|
|
59
|
+
sourceType: "module",
|
|
60
|
+
project: "tsconfig.json",
|
|
61
|
+
extraFileExtensions: [".svelte"],
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
processor: "svelte/svelte",
|
|
66
65
|
```
|
|
67
66
|
|
|
68
67
|
### Zero-Arugment API
|
|
@@ -101,13 +100,12 @@ linted(
|
|
|
101
100
|
"src/**/*.ts",
|
|
102
101
|
"*.config.ts",
|
|
103
102
|
],
|
|
104
|
-
|
|
105
103
|
// svelte: [],
|
|
106
104
|
// html: [],
|
|
107
105
|
|
|
108
106
|
/* ...json, jsonc, yml, */
|
|
109
107
|
},
|
|
110
|
-
)
|
|
108
|
+
);
|
|
111
109
|
```
|
|
112
110
|
|
|
113
111
|
#### `ignores` _(Global)_
|
|
@@ -130,8 +128,8 @@ linted(
|
|
|
130
128
|
|
|
131
129
|
```javascript
|
|
132
130
|
linted(
|
|
133
|
-
{
|
|
134
|
-
{
|
|
131
|
+
{/** includes **/},
|
|
132
|
+
{/** ignores **/},
|
|
135
133
|
{
|
|
136
134
|
/** overrides **/
|
|
137
135
|
overrideJs: {}, /* js rule overrides */
|
|
@@ -143,16 +141,17 @@ linted(
|
|
|
143
141
|
"no-unused-vars": "off", /* example: ESLint base rule */
|
|
144
142
|
"@typescript-eslint/indent": "warn", /* example: TypeScript plugin rule */
|
|
145
143
|
}, /* js rule overrides */
|
|
146
|
-
|
|
147
144
|
/* ...overrideTs, overrideSvelte, overrideHtml, overrideJson, overrideJsonc, overrideYml, */
|
|
148
145
|
},
|
|
149
|
-
)
|
|
146
|
+
);
|
|
150
147
|
```
|
|
151
148
|
|
|
152
149
|
## Limitation
|
|
150
|
+
|
|
153
151
|
In __TypeScript__ projects, [`skipLibCheck`](https://www.typescriptlang.org/tsconfig/#skipLibCheck) must be `true`.
|
|
154
152
|
|
|
155
153
|
### Enable `skipLibCheck`
|
|
154
|
+
|
|
156
155
|
By default, `skipLibCheck` is `false`. To set it to `true`:
|
|
157
156
|
|
|
158
157
|
#### `tsconfig.json`
|
|
@@ -175,28 +174,28 @@ tsc --skipLibCheck
|
|
|
175
174
|
|
|
176
175
|
1. Install [`eslint`](https://www.npmjs.com/package/eslint) and [`linted`](https://www.npmjs.com/package/linted).
|
|
177
176
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
177
|
+
```bash
|
|
178
|
+
npm i -D eslint@^8.57 linted
|
|
179
|
+
```
|
|
181
180
|
|
|
182
181
|
1. Create `eslint.config.js` in your project root.
|
|
183
182
|
|
|
184
183
|
1. In `eslint.config.js`:
|
|
185
|
-
|
|
184
|
+
- Import function `linted`.
|
|
186
185
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
186
|
+
```javascript
|
|
187
|
+
import linted from "linted";
|
|
188
|
+
```
|
|
190
189
|
|
|
191
|
-
|
|
190
|
+
- Export `linted` with optional [arguments](#total-control-via-optional-arguments):
|
|
192
191
|
|
|
193
|
-
|
|
194
|
-
|
|
192
|
+
```javascript
|
|
193
|
+
import linted from "linted";
|
|
195
194
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
195
|
+
export default linted(
|
|
196
|
+
// ...
|
|
197
|
+
);
|
|
198
|
+
```
|
|
200
199
|
|
|
201
200
|
---
|
|
202
201
|
|
|
@@ -218,11 +217,11 @@ tsc --skipLibCheck
|
|
|
218
217
|
|
|
219
218
|
- Svelte Interaction TBD
|
|
220
219
|
|
|
221
|
-
|
|
220
|
+
- .svelte-embedded HTML (on top of Svelte HTML rules)
|
|
222
221
|
|
|
223
|
-
|
|
222
|
+
- .html files in Svelte projects (e.g. title not required)
|
|
224
223
|
|
|
225
|
-
|
|
224
|
+
- Should Svelte-Linter handle all .html / HTML-embedded linting for Svelte projects, and HTML-Linter only handles non-Svelte projects?
|
|
226
225
|
|
|
227
226
|
#### JSON (Custom Schema Validation)
|
|
228
227
|
|
|
@@ -233,6 +232,7 @@ tsc --skipLibCheck
|
|
|
233
232
|
## Rule Logic (Advanced)
|
|
234
233
|
|
|
235
234
|
### What is `scope`?
|
|
235
|
+
|
|
236
236
|
Each `scope` maps to a unique `language`:
|
|
237
237
|
|
|
238
238
|
- __`js`:__ `JavaScript`
|
|
@@ -244,6 +244,7 @@ Each `scope` maps to a unique `language`:
|
|
|
244
244
|
- __`yml`:__ `YAML`
|
|
245
245
|
|
|
246
246
|
### Rules
|
|
247
|
+
|
|
247
248
|
Each `scope` supports:
|
|
248
249
|
|
|
249
250
|
- all base ESLint rules
|
|
@@ -254,6 +255,7 @@ Each `scope` supports:
|
|
|
254
255
|
- Each `language` has a set of default rules.
|
|
255
256
|
|
|
256
257
|
#### Language-Aggregate `scope`
|
|
258
|
+
|
|
257
259
|
A `language` can be an extension of or depend on another `language`.
|
|
258
260
|
|
|
259
261
|
For example:
|
|
@@ -276,53 +278,57 @@ For such a `language`, its `scope`'s default rules are aggregated with the defau
|
|
|
276
278
|
#### Global Ignores
|
|
277
279
|
|
|
278
280
|
##### `.gitignore`
|
|
281
|
+
|
|
279
282
|
By default, `linted` ignores all files in `.gitignore`. This behavior can be disabled.
|
|
280
283
|
|
|
281
284
|
##### `package-lock.json`
|
|
285
|
+
|
|
282
286
|
`**/*.package-lock.json` is always skipped. _This cannot be overriden._
|
|
283
287
|
|
|
284
288
|
##### `ignores`
|
|
289
|
+
|
|
285
290
|
Additional glob patterns supplied if matched by a file will skip linting that file, even if a scope pattern matches the file.
|
|
286
291
|
|
|
287
292
|
#### Scoped Includes
|
|
293
|
+
|
|
288
294
|
Files specified in `scope` are appended to the following default files:
|
|
289
295
|
|
|
290
296
|
```javascript
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
297
|
+
{
|
|
298
|
+
js: [
|
|
299
|
+
"{src,static}/**/*.{js,mjs,cjs}",
|
|
300
|
+
"*.{js,mjs,cjs}",
|
|
301
|
+
],
|
|
302
|
+
ts: [
|
|
303
|
+
"{src,static}/**/*.{ts,mts,cts}",
|
|
304
|
+
"*.{ts,mts,cts}",
|
|
305
|
+
],
|
|
306
|
+
svelte: ["{src,static}/**/*.svelte"],
|
|
307
|
+
html: [
|
|
308
|
+
"{src,static}/**/*.html",
|
|
309
|
+
"*.html",
|
|
310
|
+
],
|
|
311
|
+
json: [
|
|
312
|
+
"{src,static}/**/*.json",
|
|
313
|
+
"*.json",
|
|
314
|
+
],
|
|
315
|
+
jsonc: [
|
|
316
|
+
"tsconfig.json",
|
|
317
|
+
"{src,static}/**/*.jsonc",
|
|
318
|
+
"*.jsonc",
|
|
319
|
+
],
|
|
320
|
+
yml: [
|
|
321
|
+
".github/workflows/*.{yml,yaml}",
|
|
322
|
+
"{src,static}/**/*.{yml,yaml}",
|
|
323
|
+
"*.{yml,yaml}",
|
|
324
|
+
],
|
|
325
|
+
},
|
|
320
326
|
```
|
|
321
327
|
|
|
322
328
|
#### Scope Conflict
|
|
323
329
|
|
|
324
330
|
- If a given file matches more than one `scope` glob, then the set of all matching `scope`s' rules are applied to the file.
|
|
325
|
-
- If any rule is specified in more than one `scope` matching a given file, the
|
|
331
|
+
- If any rule is specified in more than one `scope` matching a given file, the specifies a rule, then the highest-precedence `scope`'s rule specification wins.
|
|
326
332
|
|
|
327
333
|
##### Scope Precedence (low to high)
|
|
328
334
|
|
|
@@ -338,14 +344,17 @@ ignores (global)
|
|
|
338
344
|
```
|
|
339
345
|
|
|
340
346
|
### Override
|
|
347
|
+
|
|
341
348
|
Overrides are per-__scope.__
|
|
342
349
|
|
|
343
350
|
#### Example
|
|
351
|
+
|
|
344
352
|
`overrideTs` rules apply to files which:
|
|
345
353
|
|
|
346
354
|
- ✅ ONLY match scope `ts`.
|
|
347
355
|
- ✅ match scope `ts` and any number of lower precedence scopes (e.g. `js`).
|
|
348
356
|
> [!NOTE]
|
|
349
357
|
> `overrideTs` rules do __NOT__ apply to files which:
|
|
358
|
+
>
|
|
350
359
|
> - TBD
|
|
351
360
|
- ❌ match scope `ts` and at least one higher precedence scope (e.g. `svelte`), even if the higher precedence scope includes `ts` language default rules (e.g. `svelte` includes `ts` default rules, but NOT `overrideTs` rules).
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAClC,OAAO,EACL,MAAM,EACN,QAAQ,EAET,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAClC,OAAO,EACL,MAAM,EACN,QAAQ,EAET,MAAM,SAAS,CAAC;AAmBjB,MAAM,CAAC,OAAO,WACZ,UAAU,GAAE,UAAU,CAAC,OAAO,IAAI,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAM,aA4B5F"}
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,6 @@ import Core from "@eslinted/core";
|
|
|
2
2
|
import { scopes, optional, tree, } from "./scope/index.js";
|
|
3
3
|
import settings from "./settings/index.js";
|
|
4
4
|
import defaults from "@eslinted/defaults";
|
|
5
|
-
import stylistic from "@stylistic/eslint-plugin";
|
|
6
5
|
import { plugin as ts, parser as tsParser, } from "typescript-eslint";
|
|
7
6
|
import html from "@html-eslint/eslint-plugin";
|
|
8
7
|
import htmlParser from "@html-eslint/parser";
|
|
@@ -19,7 +18,6 @@ export default function (extensions = {}) {
|
|
|
19
18
|
}, settings, defaults, extensions);
|
|
20
19
|
configs[configs.length] = {
|
|
21
20
|
plugins: {
|
|
22
|
-
stylistic,
|
|
23
21
|
ts: ts,
|
|
24
22
|
html: html,
|
|
25
23
|
css,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAClC,OAAO,EACL,MAAM,EACN,QAAQ,EACR,IAAI,GACL,MAAM,SAAS,CAAC;AACjB,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAI1C,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,gBAAgB,CAAC;AAClC,OAAO,EACL,MAAM,EACN,QAAQ,EACR,IAAI,GACL,MAAM,SAAS,CAAC;AACjB,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,QAAQ,MAAM,oBAAoB,CAAC;AAI1C,OAAO,EACL,MAAM,IAAI,EAAE,EACZ,MAAM,IAAI,QAAQ,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,IAAI,MAAM,4BAA4B,CAAC;AAC9C,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,GAAG,MAAM,mBAAmB,CAAC;AACpC,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAG3C,MAAM,CAAC,OAAO,WACZ,aAAyF,EAAE;IAE3F,MAAM,OAAO,GAAG,IAAI,CAClB,MAAM,EACN,QAAQ,EACR,IAAI,EACJ;QACE,EAAE,EAAE,QAAmB;QACvB,IAAI,EAAE,UAAU;QAChB,GAAG,EAAE,SAAS;KACf,EACD,QAAQ,EACR,QAAQ,EACR,UAAU,CACX,CAAC;IAEF,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG;QACxB,OAAO,EAAE;YACP,EAAE,EAAE,EAAa;YACjB,IAAI,EAAE,IAAe;YACrB,GAAG;YACH,IAAI;YACJ,KAAK;YACL,GAAG;SACJ;KACF,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dprint.jsonc
ADDED
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/jimmy-zhening-luo/dprint/refs/heads/main/dprint-schema.json",
|
|
3
|
+
// $help: https://dprint.dev/config/
|
|
4
|
+
// $version: 0.5101.0
|
|
5
|
+
"plugins": [
|
|
6
|
+
"https://plugins.dprint.dev/typescript-0.95.13.wasm",
|
|
7
|
+
"https://plugins.dprint.dev/json-0.21.0.wasm",
|
|
8
|
+
"https://plugins.dprint.dev/markdown-0.20.0.wasm",
|
|
9
|
+
"https://plugins.dprint.dev/g-plane/markup_fmt-v0.25.3.wasm",
|
|
10
|
+
"https://plugins.dprint.dev/g-plane/malva-v0.15.1.wasm",
|
|
11
|
+
"https://plugins.dprint.dev/g-plane/pretty_yaml-v0.5.1.wasm",
|
|
12
|
+
"https://plugins.dprint.dev/g-plane/pretty_jinja-v0.2.0.wasm",
|
|
13
|
+
"https://plugins.dprint.dev/roslyn-0.19.1.json@a5daf2404c57680374f255c78f1956916482aa4b4e90825f1a48eb5a7e343b35",
|
|
14
|
+
],
|
|
15
|
+
"excludes": [
|
|
16
|
+
"**/node_modules/**",
|
|
17
|
+
"**/*-lock.json",
|
|
18
|
+
"**/.clasprc.json",
|
|
19
|
+
"**/dist/**",
|
|
20
|
+
"**/.svelte-kit/**",
|
|
21
|
+
"**/.vscode/c_cpp_properties.json",
|
|
22
|
+
],
|
|
23
|
+
"lineWidth": 180,
|
|
24
|
+
"newLineKind": "lf",
|
|
25
|
+
"useTabs": false,
|
|
26
|
+
"indentWidth": 2,
|
|
27
|
+
"typescript": {
|
|
28
|
+
// $help: https://dprint.dev/plugins/typescript/
|
|
29
|
+
// $help: https://dprint.dev/plugins/typescript/config/
|
|
30
|
+
"locked": true,
|
|
31
|
+
"lineWidth": 180,
|
|
32
|
+
"newLineKind": "lf",
|
|
33
|
+
"useTabs": false,
|
|
34
|
+
"indentWidth": 2,
|
|
35
|
+
"ignoreNodeCommentText": "dprint-ignore",
|
|
36
|
+
"ignoreFileCommentText": "dprint-ignore-file",
|
|
37
|
+
"quoteStyle": "preferDouble",
|
|
38
|
+
"quoteProps": "asNeeded",
|
|
39
|
+
"semiColons": "always",
|
|
40
|
+
"preferHanging": false,
|
|
41
|
+
"preferSingleLine": false,
|
|
42
|
+
"spaceAround": false,
|
|
43
|
+
"trailingCommas": "onlyMultiLine",
|
|
44
|
+
"bracePosition": "sameLine",
|
|
45
|
+
"useBraces": "preferNone",
|
|
46
|
+
"operatorPosition": "nextLine",
|
|
47
|
+
"singleBodyPosition": "nextLine",
|
|
48
|
+
"nextControlFlowPosition": "nextLine",
|
|
49
|
+
"spaceSurroundingProperties": true,
|
|
50
|
+
"arrowFunction.useParentheses": "preferNone",
|
|
51
|
+
"binaryExpression.linePerExpression": true,
|
|
52
|
+
"binaryExpression.spaceSurroundingBitwiseAndArithmeticOperator": true,
|
|
53
|
+
"commentLine.forceSpaceAfterSlashes": false,
|
|
54
|
+
"constructor.spaceBeforeParentheses": true,
|
|
55
|
+
"constructorType.spaceAfterNewKeyword": false,
|
|
56
|
+
"constructSignature.spaceAfterNewKeyword": true,
|
|
57
|
+
"doWhileStatement.spaceAfterWhileKeyword": true,
|
|
58
|
+
"enumDeclaration.memberSpacing": "newLine",
|
|
59
|
+
"exportDeclaration.forceMultiLine": "whenMultiple",
|
|
60
|
+
"exportDeclaration.forceSingleLine": false,
|
|
61
|
+
"exportDeclaration.sortNamedExports": "maintain",
|
|
62
|
+
"exportDeclaration.sortTypeOnlyExports": "none",
|
|
63
|
+
"exportDeclaration.spaceSurroundingNamedExports": true,
|
|
64
|
+
"forInStatement.spaceAfterForKeyword": true,
|
|
65
|
+
"forStatement.spaceAfterSemiColons": true,
|
|
66
|
+
"functionDeclaration.spaceBeforeParentheses": false,
|
|
67
|
+
"functionExpression.spaceAfterFunctionKeyword": true,
|
|
68
|
+
"functionExpression.spaceBeforeParentheses": false,
|
|
69
|
+
"getAccessor.spaceBeforeParentheses": false,
|
|
70
|
+
"ifStatement.spaceAfterIfKeyword": true,
|
|
71
|
+
"importDeclaration.forceMultiLine": "whenMultiple",
|
|
72
|
+
"importDeclaration.forceSingleLine": false,
|
|
73
|
+
"importDeclaration.sortNamedImports": "maintain",
|
|
74
|
+
"importDeclaration.sortTypeOnlyImports": "none",
|
|
75
|
+
"importDeclaration.spaceSurroundingNamedImports": true,
|
|
76
|
+
"memberExpression.linePerExpression": true,
|
|
77
|
+
"method.spaceBeforeParentheses": false,
|
|
78
|
+
"module.sortExportDeclarations": "maintain",
|
|
79
|
+
"module.sortImportDeclarations": "maintain",
|
|
80
|
+
"setAccessor.spaceBeforeParentheses": false,
|
|
81
|
+
"taggedTemplate.spaceBeforeLiteral": false,
|
|
82
|
+
"typeAnnotation.spaceBeforeColon": false,
|
|
83
|
+
"typeAssertion.spaceBeforeExpression": false,
|
|
84
|
+
"typeLiteral.separatorKind": "semiColon",
|
|
85
|
+
"whileStatement.spaceAfterWhileKeyword": true,
|
|
86
|
+
},
|
|
87
|
+
"roslyn": {
|
|
88
|
+
// $help: https://learn.microsoft.com/en-us/dotnet/api/microsoft.codeanalysis.csharp.formatting.csharpformattingoptions#properties
|
|
89
|
+
// DOC:[source] https://github.com/dotnet/roslyn/blob/main/src/Workspaces/CSharp/Portable/Formatting/CSharpFormattingOptions.cs
|
|
90
|
+
"csharp.indentBlock": true,
|
|
91
|
+
"csharp.indentBraces": false,
|
|
92
|
+
"csharp.indentSwitchSection": true,
|
|
93
|
+
"csharp.indentSwitchCaseSection": true,
|
|
94
|
+
"csharp.indentSwitchCaseSectionWhenBlock": true,
|
|
95
|
+
"csharp.newLineForElse": true,
|
|
96
|
+
"csharp.newLineForCatch": true,
|
|
97
|
+
"csharp.newLineForFinally": true,
|
|
98
|
+
"csharp.labelPositioning": "LeftMost" /* 0 */,
|
|
99
|
+
"csharp.newLineForClausesInQuery": true,
|
|
100
|
+
"csharp.spaceAfterCast": false,
|
|
101
|
+
"csharp.newLineForMembersInAnonymousTypes": true,
|
|
102
|
+
"csharp.newLineForMembersInObjectInit": true,
|
|
103
|
+
"csharp.newLinesForBracesInAccessors": true,
|
|
104
|
+
"csharp.newLinesForBracesInAnonymousMethods": true,
|
|
105
|
+
"csharp.newLinesForBracesInControlBlocks": true,
|
|
106
|
+
"csharp.newLinesForBracesInLambdaExpressionBody": true,
|
|
107
|
+
"csharp.newLinesForBracesInMethods": true,
|
|
108
|
+
"csharp.newLinesForBracesInTypes": true,
|
|
109
|
+
"csharp.newLinesForBracesInAnonymousTypes": true,
|
|
110
|
+
"csharp.newLinesForBracesInObjectCollectionArrayInitializers": true,
|
|
111
|
+
"csharp.newLinesForBracesInProperties": true,
|
|
112
|
+
"csharp.spaceBetweenEmptyMethodCallParentheses": false,
|
|
113
|
+
"csharp.spaceAfterColonInBaseTypeDeclaration": true,
|
|
114
|
+
"csharp.spaceAfterComma": true,
|
|
115
|
+
"csharp.spaceAfterDot": false,
|
|
116
|
+
"csharp.spaceAfterControlFlowStatementKeyword": true,
|
|
117
|
+
"csharp.spaceAfterMethodCallName": false,
|
|
118
|
+
"csharp.spaceAfterSemicolonsInForStatement": true,
|
|
119
|
+
"csharp.spaceBeforeColonInBaseTypeDeclaration": true,
|
|
120
|
+
"csharp.spaceBeforeComma": false,
|
|
121
|
+
"csharp.spaceBeforeDot": false,
|
|
122
|
+
"csharp.spaceBeforeSemicolonsInForStatement": false,
|
|
123
|
+
"csharp.spaceBetweenEmptySquareBrackets": false,
|
|
124
|
+
"csharp.spaceBeforeOpenSquareBracket": false,
|
|
125
|
+
"csharp.spaceBetweenEmptyMethodDeclarationParentheses": false,
|
|
126
|
+
"csharp.spacesIgnoreAroundVariableDeclaration": false,
|
|
127
|
+
"csharp.spaceWithinCastParentheses": false,
|
|
128
|
+
"csharp.spaceWithinExpressionParentheses": false,
|
|
129
|
+
"csharp.spaceWithinMethodCallParentheses": false,
|
|
130
|
+
"csharp.spaceWithinMethodDeclarationParenthesis": false,
|
|
131
|
+
"csharp.spaceWithinOtherParentheses": false,
|
|
132
|
+
"csharp.spaceWithinSquareBrackets": false,
|
|
133
|
+
"csharp.spacingAfterMethodDeclarationName": false,
|
|
134
|
+
"csharp.spacingAroundBinaryOperator": "Single" /* 0 */,
|
|
135
|
+
"csharp.wrappingKeepStatementsOnSingleLine": true,
|
|
136
|
+
"csharp.wrappingPreserveSingleLine": true,
|
|
137
|
+
},
|
|
138
|
+
"json": {
|
|
139
|
+
// $help: https://dprint.dev/plugins/json/config/
|
|
140
|
+
"locked": true,
|
|
141
|
+
"lineWidth": 80,
|
|
142
|
+
"newLineKind": "lf",
|
|
143
|
+
"useTabs": false,
|
|
144
|
+
"indentWidth": 2,
|
|
145
|
+
"ignoreNodeCommentText": "dprint-ignore",
|
|
146
|
+
"commentLine.forceSpaceAfterSlashes": true,
|
|
147
|
+
"preferSingleLine": false,
|
|
148
|
+
"trailingCommas": "maintain",
|
|
149
|
+
"array.preferSingleLine": false,
|
|
150
|
+
"object.preferSingleLine": false,
|
|
151
|
+
},
|
|
152
|
+
"markdown": {
|
|
153
|
+
// $help: https://dprint.dev/plugins/markdown/config/
|
|
154
|
+
"locked": true,
|
|
155
|
+
"lineWidth": 180,
|
|
156
|
+
"newLineKind": "lf",
|
|
157
|
+
"textWrap": "maintain",
|
|
158
|
+
"emphasisKind": "underscores",
|
|
159
|
+
"strongKind": "underscores",
|
|
160
|
+
"ignoreDirective": "dprint-ignore",
|
|
161
|
+
"ignoreFileDirective": "dprint-ignore-file",
|
|
162
|
+
"ignoreStartDirective": "dprint-ignore-start",
|
|
163
|
+
"ignoreEndDirective": "dprint-ignore-end",
|
|
164
|
+
},
|
|
165
|
+
"markup": {
|
|
166
|
+
// $help: https://markup-fmt.netlify.app/
|
|
167
|
+
"printWidth": 180,
|
|
168
|
+
"useTabs": false,
|
|
169
|
+
"indentWidth": 2,
|
|
170
|
+
"lineBreak": "lf",
|
|
171
|
+
"quotes": "double",
|
|
172
|
+
"formatComments": true,
|
|
173
|
+
"scriptIndent": true,
|
|
174
|
+
"styleIndent": true,
|
|
175
|
+
"closingBracketSameLine": false,
|
|
176
|
+
"closingTagLineBreakForEmpty": "fit",
|
|
177
|
+
"maxAttrsPerLine": 1,
|
|
178
|
+
"preferAttrsSingleLine": false,
|
|
179
|
+
"singleAttrSameLine": true,
|
|
180
|
+
"whitespaceSensitivity": "css",
|
|
181
|
+
"doctypeKeywordCase": "upper",
|
|
182
|
+
"strictSvelteAttr": false,
|
|
183
|
+
"svelteAttrShorthand": true,
|
|
184
|
+
"svelteDirectiveShorthand": true,
|
|
185
|
+
"scriptFormatter": "dprint",
|
|
186
|
+
"ignoreCommentDirective": "dprint-ignore",
|
|
187
|
+
"ignoreFileCommentDirective": "dprint-ignore-file",
|
|
188
|
+
},
|
|
189
|
+
"malva": {
|
|
190
|
+
// $help: https://malva.netlify.app/config/index.html
|
|
191
|
+
"printWidth": 180,
|
|
192
|
+
"useTabs": false,
|
|
193
|
+
"indentWidth": 2,
|
|
194
|
+
"lineBreak": "lf",
|
|
195
|
+
"hexCase": "lower",
|
|
196
|
+
"hexColorLength": "short",
|
|
197
|
+
"quotes": "preferDouble",
|
|
198
|
+
"operatorLinebreak": "after",
|
|
199
|
+
"blockSelectorLinebreak": "always",
|
|
200
|
+
"omitNumberLeadingZero": false,
|
|
201
|
+
"trailingComma": true,
|
|
202
|
+
"formatComments": true,
|
|
203
|
+
"alignComments": true,
|
|
204
|
+
"linebreakInPseudoParens": true,
|
|
205
|
+
"declarationOrder": null,
|
|
206
|
+
"declarationOrderGroupBy": "nonDeclaration",
|
|
207
|
+
"singleLineBlockThreshold": 1,
|
|
208
|
+
"keyframeSelectorNotation": "keyword",
|
|
209
|
+
"attrValueQuotes": "always",
|
|
210
|
+
"preferSingleLine": false,
|
|
211
|
+
"singleLineTopLevelDeclarations": false,
|
|
212
|
+
"selectorOverrideCommentDirective": "malva-selector-override",
|
|
213
|
+
"ignoreCommentDirective": "dprint-ignore",
|
|
214
|
+
"ignoreFileCommentDirective": "dprint-ignore-file",
|
|
215
|
+
},
|
|
216
|
+
"yaml": {
|
|
217
|
+
// $help: https://pretty-yaml.netlify.app/
|
|
218
|
+
"printWidth": 180,
|
|
219
|
+
"indentWidth": 2,
|
|
220
|
+
"lineBreak": "lf",
|
|
221
|
+
"quotes": "preferDouble",
|
|
222
|
+
"trailingComma": true,
|
|
223
|
+
"formatComments": false,
|
|
224
|
+
"indentBlockSequenceInMap": true,
|
|
225
|
+
"braceSpacing": false,
|
|
226
|
+
"bracketSpacing": false,
|
|
227
|
+
"dashSpacing": "oneSpace",
|
|
228
|
+
"preferSingleLine": false,
|
|
229
|
+
"trimTrailingWhitespaces": true,
|
|
230
|
+
"trimTrailingZero": true,
|
|
231
|
+
"ignoreCommentDirective": "dprint-ignore",
|
|
232
|
+
},
|
|
233
|
+
}
|
package/package.json
CHANGED
|
@@ -3,18 +3,16 @@
|
|
|
3
3
|
"$schema": "https://json.schemastore.org/package",
|
|
4
4
|
"$help": "https://docs.npmjs.com/cli/configuring-npm/package-json",
|
|
5
5
|
"name": "linted",
|
|
6
|
-
"version": "
|
|
6
|
+
"version": "37.0.0-rc.1",
|
|
7
7
|
"repository": "github:jimmy-zhening-luo/linted",
|
|
8
|
-
"description": "ESLint mono-plugin bundler with strict, opinionated defaults for
|
|
8
|
+
"description": "ESLint mono-plugin bundler with strict, opinionated defaults for JavaScript, TypeScript, Svelte, HTML, Tailwind/CSS, JSON, JSONC, YAML, and Mocha.",
|
|
9
9
|
"keywords": [
|
|
10
10
|
"eslint",
|
|
11
11
|
"eslint-config",
|
|
12
12
|
"eslint-plugin",
|
|
13
13
|
"linter",
|
|
14
|
-
"formatter",
|
|
15
14
|
"typescript",
|
|
16
15
|
"javascript",
|
|
17
|
-
"stylistic",
|
|
18
16
|
"svelte",
|
|
19
17
|
"sveltekit",
|
|
20
18
|
"html",
|
|
@@ -61,8 +59,8 @@
|
|
|
61
59
|
"dependencies": {
|
|
62
60
|
"@eslint/css": "0.14.1",
|
|
63
61
|
"@eslint/json": "0.14.0",
|
|
64
|
-
"@eslinted/core": "32.1.
|
|
65
|
-
"@eslinted/defaults": "
|
|
62
|
+
"@eslinted/core": "32.1.13",
|
|
63
|
+
"@eslinted/defaults": "19.0.2",
|
|
66
64
|
"@html-eslint/eslint-plugin": "0.52.1",
|
|
67
65
|
"@stylistic/eslint-plugin": "5.6.1",
|
|
68
66
|
"eslint-plugin-jsonc": "2.21.0",
|
package/src/index.ts
CHANGED
|
@@ -10,7 +10,6 @@ import defaults from "@eslinted/defaults";
|
|
|
10
10
|
// #endregion
|
|
11
11
|
|
|
12
12
|
// #region External
|
|
13
|
-
import stylistic from "@stylistic/eslint-plugin";
|
|
14
13
|
import {
|
|
15
14
|
plugin as ts,
|
|
16
15
|
parser as tsParser,
|
|
@@ -43,7 +42,6 @@ export default function (
|
|
|
43
42
|
|
|
44
43
|
configs[configs.length] = {
|
|
45
44
|
plugins: {
|
|
46
|
-
stylistic,
|
|
47
45
|
ts: ts as unknown,
|
|
48
46
|
html: html as unknown,
|
|
49
47
|
css,
|