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.
@@ -1,6 +1,6 @@
1
1
  import { mkdir } from 'node:fs/promises';
2
2
  import { resolve } from 'node:path';
3
- import { GeneratorCompat as Generator } from '@idleberg/yeoman-generator';
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` : true,
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
- ? true
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
- choices: [
60
+ options: [
59
61
  {
60
- name: '(default)',
62
+ label: '(default)',
61
63
  value: 'Linter',
62
64
  },
63
65
  {
64
- name: 'Composer',
66
+ label: 'Composer',
65
67
  value: 'ComposerLinter',
66
68
  },
67
69
  {
68
- name: 'Node',
70
+ label: 'Node',
69
71
  value: 'NodeLinter',
70
72
  },
71
73
  {
72
- name: terminalLink('Python', 'http://www.sublimelinter.com/en/stable/python_linter.html', {
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
- name: terminalLink('Ruby', 'http://www.sublimelinter.com/en/stable/ruby_linter.html', {
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 ? true : 'You have to provide a valid selector'),
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
- choices: [
120
+ options: [
118
121
  {
119
- name: 'both',
122
+ label: 'both',
120
123
  value: 'STREAM_BOTH',
121
124
  },
122
125
  {
123
- name: 'stderr',
126
+ label: 'stderr',
124
127
  value: 'STREAM_STDERR',
125
128
  },
126
129
  {
127
- name: 'stdout',
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 ? true : 'You have to provide a username'),
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
- choices: licenseChoices,
163
+ options: licenseChoices,
160
164
  store: true,
161
165
  },
162
166
  {
163
- type: 'checkbox',
167
+ type: 'multiselect',
164
168
  name: 'tests',
165
169
  message: 'Add CI/CD pipeline configurations?',
166
170
  store: true,
167
- choices: [
171
+ options: [
168
172
  {
169
- name: terminalLink('Circle CI', 'https://circleci.com/', {
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
- name: terminalLink('GitHub Workflow', 'https://docs.github.com/en/actions/using-workflows', {
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.name = terminalLink(obj, `https://spdx.org/licenses/${obj}.html`, {
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
- "name": "generator-sublimelinter",
3
- "version": "0.4.3",
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
- "repository": {
22
- "type": "git",
23
- "url": "git+https://github.com/idleberg/generator-sublimelinter.git"
24
- },
25
- "engines": {
26
- "node": ">=20"
27
- },
28
- "dependencies": {
29
- "@idleberg/yeoman-generator": "^0.1.5",
30
- "@sindresorhus/slugify": "^3.0.0",
31
- "change-case": "^5.4.4",
32
- "semver": "^7.7.4",
33
- "spdx-license-list": "^6.11.0",
34
- "terminal-link": "^5.0.0"
35
- },
36
- "devDependencies": {
37
- "@commitlint/cli": "^20.4.1",
38
- "@commitlint/config-conventional": "^20.4.1",
39
- "@idleberg/configs": "^0.4.2",
40
- "@types/node": "^24.10.4",
41
- "@types/yeoman-assert": "^3.1.4",
42
- "@yeoman/adapter": "^4.0.1",
43
- "@yeoman/types": "^1.8.0",
44
- "concurrently": "^9.2.1",
45
- "kleur": "^4.1.5",
46
- "mem-fs": "^4.1.3",
47
- "np": "^11.0.2",
48
- "vitest": "^4.0.18",
49
- "yeoman-assert": "^3.1.1",
50
- "yeoman-environment": "^5.1.3",
51
- "yeoman-generator": "^7.5.1",
52
- "yeoman-test": "^11.2.0"
53
- },
54
- "scripts": {
55
- "lint:e18e": "e18e-cli analyze",
56
- "lint:code": "biome check",
57
- "lint": "concurrently --prefix '{name}' -c 'green,blue' 'npm:lint:*'",
58
- "publish:npm": "np",
59
- "test": "vitest run",
60
- "test:watch": "vitest"
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
+ }