generator-sublimelinter 0.4.3 → 0.5.0
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/generators/app/index.js +31 -27
- package/lib/helpers.js +1 -1
- package/package.json +62 -61
package/generators/app/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { mkdir } from 'node:fs/promises';
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
|
-
import {
|
|
3
|
+
import { Generator } from '@idleberg/yeoman-generator';
|
|
4
4
|
import slugify from '@sindresorhus/slugify';
|
|
5
5
|
import { pascalCase } from 'change-case';
|
|
6
6
|
import { inverse } from 'kleur/colors';
|
|
@@ -28,21 +28,23 @@ export default class extends Generator {
|
|
|
28
28
|
|
|
29
29
|
const answers = await this.prompt([
|
|
30
30
|
{
|
|
31
|
+
type: 'text',
|
|
31
32
|
name: 'name',
|
|
32
33
|
message: `What's name of the linter executable?`,
|
|
33
34
|
default: slugify(this.appname),
|
|
34
35
|
store: true,
|
|
35
36
|
validate: (str) =>
|
|
36
|
-
validateName(str) === false ? `Specify the linter's name without SublimeLinter prefixes` :
|
|
37
|
+
validateName(str) === false ? `Specify the linter's name without SublimeLinter prefixes` : undefined,
|
|
37
38
|
},
|
|
38
39
|
{
|
|
40
|
+
type: 'text',
|
|
39
41
|
name: 'version',
|
|
40
42
|
message: `What's the plugin's initial version?`,
|
|
41
43
|
default: '0.1.0',
|
|
42
44
|
store: true,
|
|
43
45
|
validate: (version) =>
|
|
44
46
|
this.looseVersion === true || semver.valid(version) !== null
|
|
45
|
-
?
|
|
47
|
+
? undefined
|
|
46
48
|
: `Not a valid ${terminalLink('semantic version', 'https://semver.org', {
|
|
47
49
|
fallback() {
|
|
48
50
|
return 'semantic version';
|
|
@@ -50,26 +52,26 @@ export default class extends Generator {
|
|
|
50
52
|
})}`,
|
|
51
53
|
},
|
|
52
54
|
{
|
|
55
|
+
type: 'select',
|
|
53
56
|
name: 'interface',
|
|
54
57
|
message: 'Specify a linter interface:',
|
|
55
|
-
type: 'list',
|
|
56
58
|
default: '(default)',
|
|
57
59
|
store: true,
|
|
58
|
-
|
|
60
|
+
options: [
|
|
59
61
|
{
|
|
60
|
-
|
|
62
|
+
label: '(default)',
|
|
61
63
|
value: 'Linter',
|
|
62
64
|
},
|
|
63
65
|
{
|
|
64
|
-
|
|
66
|
+
label: 'Composer',
|
|
65
67
|
value: 'ComposerLinter',
|
|
66
68
|
},
|
|
67
69
|
{
|
|
68
|
-
|
|
70
|
+
label: 'Node',
|
|
69
71
|
value: 'NodeLinter',
|
|
70
72
|
},
|
|
71
73
|
{
|
|
72
|
-
|
|
74
|
+
label: terminalLink('Python', 'http://www.sublimelinter.com/en/stable/python_linter.html', {
|
|
73
75
|
fallback() {
|
|
74
76
|
return 'Python';
|
|
75
77
|
},
|
|
@@ -77,7 +79,7 @@ export default class extends Generator {
|
|
|
77
79
|
value: 'PythonLinter',
|
|
78
80
|
},
|
|
79
81
|
{
|
|
80
|
-
|
|
82
|
+
label: terminalLink('Ruby', 'http://www.sublimelinter.com/en/stable/ruby_linter.html', {
|
|
81
83
|
fallback() {
|
|
82
84
|
return 'Ruby';
|
|
83
85
|
},
|
|
@@ -87,6 +89,7 @@ export default class extends Generator {
|
|
|
87
89
|
],
|
|
88
90
|
},
|
|
89
91
|
{
|
|
92
|
+
type: 'text',
|
|
90
93
|
name: 'selector',
|
|
91
94
|
message: `Specify a ${terminalLink(
|
|
92
95
|
'selector',
|
|
@@ -99,9 +102,10 @@ export default class extends Generator {
|
|
|
99
102
|
)} for files that should be linted:`,
|
|
100
103
|
default: (answers) => getDefaultSelector(answers.interface),
|
|
101
104
|
store: true,
|
|
102
|
-
validate: (answer) => (answer?.length > 0 ?
|
|
105
|
+
validate: (answer) => (answer?.length > 0 ? undefined : 'You have to provide a valid selector'),
|
|
103
106
|
},
|
|
104
107
|
{
|
|
108
|
+
type: 'select',
|
|
105
109
|
name: 'errorStream',
|
|
106
110
|
message: `Specify the output captured for the ${terminalLink(
|
|
107
111
|
'error stream',
|
|
@@ -112,25 +116,25 @@ export default class extends Generator {
|
|
|
112
116
|
},
|
|
113
117
|
},
|
|
114
118
|
)}:`,
|
|
115
|
-
type: 'list',
|
|
116
119
|
default: 'STREAM_BOTH',
|
|
117
|
-
|
|
120
|
+
options: [
|
|
118
121
|
{
|
|
119
|
-
|
|
122
|
+
label: 'both',
|
|
120
123
|
value: 'STREAM_BOTH',
|
|
121
124
|
},
|
|
122
125
|
{
|
|
123
|
-
|
|
126
|
+
label: 'stderr',
|
|
124
127
|
value: 'STREAM_STDERR',
|
|
125
128
|
},
|
|
126
129
|
{
|
|
127
|
-
|
|
130
|
+
label: 'stdout',
|
|
128
131
|
value: 'STREAM_STDOUT',
|
|
129
132
|
},
|
|
130
133
|
],
|
|
131
134
|
store: true,
|
|
132
135
|
},
|
|
133
136
|
{
|
|
137
|
+
type: 'confirm',
|
|
134
138
|
name: 'multiline',
|
|
135
139
|
message: `Does the RegEx pattern capture ${terminalLink(
|
|
136
140
|
'multiline',
|
|
@@ -141,51 +145,50 @@ export default class extends Generator {
|
|
|
141
145
|
},
|
|
142
146
|
},
|
|
143
147
|
)}?`,
|
|
144
|
-
type: 'confirm',
|
|
145
148
|
default: false,
|
|
146
149
|
store: true,
|
|
147
150
|
},
|
|
148
151
|
{
|
|
152
|
+
type: 'text',
|
|
149
153
|
name: 'author',
|
|
150
154
|
message: `What's your GitHub username?`,
|
|
151
155
|
store: true,
|
|
152
|
-
validate: (answer) => (answer?.length > 0 ?
|
|
156
|
+
validate: (answer) => (answer?.length > 0 ? undefined : 'You have to provide a username'),
|
|
153
157
|
},
|
|
154
158
|
{
|
|
159
|
+
type: 'select',
|
|
155
160
|
name: 'spdxLicense',
|
|
156
161
|
message: 'Choose a license for your linter:',
|
|
157
|
-
type: 'list',
|
|
158
162
|
default: 'MIT',
|
|
159
|
-
|
|
163
|
+
options: licenseChoices,
|
|
160
164
|
store: true,
|
|
161
165
|
},
|
|
162
166
|
{
|
|
163
|
-
type: '
|
|
167
|
+
type: 'multiselect',
|
|
164
168
|
name: 'tests',
|
|
165
169
|
message: 'Add CI/CD pipeline configurations?',
|
|
166
170
|
store: true,
|
|
167
|
-
|
|
171
|
+
options: [
|
|
168
172
|
{
|
|
169
|
-
|
|
173
|
+
label: terminalLink('Circle CI', 'https://circleci.com/', {
|
|
170
174
|
fallback() {
|
|
171
175
|
return 'Circle CI';
|
|
172
176
|
},
|
|
173
177
|
}),
|
|
174
178
|
value: 'circleCI',
|
|
175
|
-
checked: false,
|
|
176
179
|
},
|
|
177
180
|
{
|
|
178
|
-
|
|
181
|
+
label: terminalLink('GitHub Workflow', 'https://docs.github.com/en/actions/using-workflows', {
|
|
179
182
|
fallback() {
|
|
180
183
|
return 'GitHub Workflow';
|
|
181
184
|
},
|
|
182
185
|
}),
|
|
183
186
|
value: 'githubWorkflow',
|
|
184
|
-
checked: false,
|
|
185
187
|
},
|
|
186
188
|
],
|
|
187
189
|
},
|
|
188
190
|
{
|
|
191
|
+
type: 'text',
|
|
189
192
|
name: 'flakeArgs',
|
|
190
193
|
message: `Specify arguments for ${terminalLink('flake8', 'http://flake8.pycqa.org/', {
|
|
191
194
|
fallback() {
|
|
@@ -197,6 +200,7 @@ export default class extends Generator {
|
|
|
197
200
|
when: (answers) => answers.tests.length > 0,
|
|
198
201
|
},
|
|
199
202
|
{
|
|
203
|
+
type: 'text',
|
|
200
204
|
name: 'pepArgs',
|
|
201
205
|
message: `Specify arguments for ${terminalLink('pep257', 'https://pep257.readthedocs.io/', {
|
|
202
206
|
fallback() {
|
|
@@ -208,9 +212,9 @@ export default class extends Generator {
|
|
|
208
212
|
when: (answers) => answers.tests.length > 0,
|
|
209
213
|
},
|
|
210
214
|
{
|
|
215
|
+
type: 'confirm',
|
|
211
216
|
name: 'initGit',
|
|
212
217
|
message: 'Initialize a Git repository?',
|
|
213
|
-
type: 'confirm',
|
|
214
218
|
default: !(await fileExists(resolve(process.cwd(), '.git', 'config'))),
|
|
215
219
|
},
|
|
216
220
|
]);
|
package/lib/helpers.js
CHANGED
|
@@ -7,7 +7,7 @@ const spdxCodes = Object.getOwnPropertyNames(spdxLicenseList).sort();
|
|
|
7
7
|
|
|
8
8
|
export const licenseChoices = spdxCodes.map((obj) => {
|
|
9
9
|
const licenses = {};
|
|
10
|
-
licenses.
|
|
10
|
+
licenses.label = terminalLink(obj, `https://spdx.org/licenses/${obj}.html`, {
|
|
11
11
|
fallback: true,
|
|
12
12
|
});
|
|
13
13
|
licenses.value = obj;
|
package/package.json
CHANGED
|
@@ -1,62 +1,63 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
2
|
+
"name": "generator-sublimelinter",
|
|
3
|
+
"version": "0.5.0",
|
|
4
|
+
"description": "Yeoman generator for SublimeLinter plugins",
|
|
5
|
+
"author": "Jan T. Sott",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"yeoman-generator",
|
|
9
|
+
"sublimelinter",
|
|
10
|
+
"sublimelinter-plugin",
|
|
11
|
+
"sublime text"
|
|
12
|
+
],
|
|
13
|
+
"type": "module",
|
|
14
|
+
"exports": "./generators/app/index.js",
|
|
15
|
+
"files": [
|
|
16
|
+
"generators",
|
|
17
|
+
"lib",
|
|
18
|
+
"LICENSE",
|
|
19
|
+
"README.md"
|
|
20
|
+
],
|
|
21
|
+
"scripts": {
|
|
22
|
+
"lint:e18e": "e18e-cli analyze",
|
|
23
|
+
"lint:code": "biome check",
|
|
24
|
+
"lint": "concurrently --prefix '{name}' -c 'green,blue' 'npm:lint:*'",
|
|
25
|
+
"publish:npm": "np",
|
|
26
|
+
"test": "vitest run",
|
|
27
|
+
"test:watch": "vitest"
|
|
28
|
+
},
|
|
29
|
+
"repository": {
|
|
30
|
+
"type": "git",
|
|
31
|
+
"url": "git+https://github.com/idleberg/generator-sublimelinter.git"
|
|
32
|
+
},
|
|
33
|
+
"engines": {
|
|
34
|
+
"node": ">=20"
|
|
35
|
+
},
|
|
36
|
+
"dependencies": {
|
|
37
|
+
"@idleberg/yeoman-generator": "^0.3.0",
|
|
38
|
+
"@sindresorhus/slugify": "^3.0.0",
|
|
39
|
+
"change-case": "^5.4.4",
|
|
40
|
+
"semver": "^7.8.0",
|
|
41
|
+
"spdx-license-list": "^6.11.0",
|
|
42
|
+
"terminal-link": "^5.0.0"
|
|
43
|
+
},
|
|
44
|
+
"devDependencies": {
|
|
45
|
+
"@commitlint/cli": "^21.0.1",
|
|
46
|
+
"@commitlint/config-conventional": "^21.0.1",
|
|
47
|
+
"@idleberg/configs": "^0.4.2",
|
|
48
|
+
"@types/node": "^24.10.4",
|
|
49
|
+
"@types/yeoman-assert": "^3.1.4",
|
|
50
|
+
"@yeoman/adapter": "^4.0.2",
|
|
51
|
+
"@yeoman/types": "^1.11.1",
|
|
52
|
+
"concurrently": "^9.2.1",
|
|
53
|
+
"kleur": "^4.1.5",
|
|
54
|
+
"mem-fs": "^4.1.4",
|
|
55
|
+
"np": "^11.2.1",
|
|
56
|
+
"vitest": "^4.1.6",
|
|
57
|
+
"yeoman-assert": "^3.1.1",
|
|
58
|
+
"yeoman-environment": "^6.1.0",
|
|
59
|
+
"yeoman-generator": "^8.2.2",
|
|
60
|
+
"yeoman-test": "^11.5.2"
|
|
61
|
+
},
|
|
62
|
+
"packageManager": "pnpm@11.1.3"
|
|
63
|
+
}
|