Skip to content

Commit 2f9e25a

Browse files
authored
more jsdoc typing (microsoft#484)
1 parent d25eed7 commit 2f9e25a

12 files changed

+241
-54
lines changed

generators/app/generate-colortheme.js

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,27 @@ import * as fs from 'fs';
99
import * as plistParser from 'fast-plist';
1010
import request from 'request-light';
1111

12+
/**
13+
* @typedef {{
14+
* themeContent: Object,
15+
* themeName: string,
16+
* themeBase: string,
17+
* themeFileName: string,
18+
* tmThemeFileName: string,
19+
* tmThemeContent: string,
20+
* } & import('./index.js').ExtensionConfig} ExtensionConfig
21+
*/
22+
23+
/**
24+
* @type {import('./index.js').ExtensionGenerator}
25+
*/
1226
export default {
1327
id: 'ext-colortheme',
1428
aliases: ['colortheme'],
1529
name: 'New Color Theme',
1630
/**
1731
* @param {Generator} generator
18-
* @param {Object} extensionConfig
32+
* @param {ExtensionConfig} extensionConfig
1933
*/
2034
prompting: async (generator, extensionConfig) => {
2135

@@ -63,7 +77,7 @@ export default {
6377
},
6478
/**
6579
* @param {Generator} generator
66-
* @param {Object} extensionConfig
80+
* @param {ExtensionConfig} extensionConfig
6781
*/
6882
writing: (generator, extensionConfig) => {
6983
if (extensionConfig.tmThemeFileName) {
@@ -92,7 +106,7 @@ export default {
92106

93107
/**
94108
* @param {Generator} generator
95-
* @param {Object} extensionConfig
109+
* @param {ExtensionConfig} extensionConfig
96110
*/
97111
async function askForThemeInfo(generator, extensionConfig) {
98112
if (generator.options['quick']) {
@@ -132,7 +146,12 @@ async function askForThemeInfo(generator, extensionConfig) {
132146
await convertTheme(null, extensionConfig, false, generator);
133147
}
134148
}
135-
149+
/**
150+
* @param {string} location
151+
* @param {ExtensionConfig} extensionConfig
152+
* @param {boolean} inline
153+
* @param {Generator} generator
154+
*/
136155
function convertTheme(location, extensionConfig, inline, generator) {
137156
if (!location) {
138157
extensionConfig.tmThemeFileName = '';
@@ -187,6 +206,12 @@ function convertTheme(location, extensionConfig, inline, generator) {
187206
}
188207
}
189208

209+
/**
210+
* @param {ExtensionConfig} extensionConfig
211+
* @param {string} tmThemeFileName
212+
* @param {string} body
213+
* @param {Generator} generator
214+
*/
190215
function processContent(extensionConfig, tmThemeFileName, body, generator) {
191216
const themeNameMatch = body.match(/<key>name<\/key>\s*<string>([^<]*)/);
192217
const themeName = themeNameMatch ? themeNameMatch[1] : '';
@@ -235,6 +260,11 @@ const mappings = {
235260
"ansiBrightCyan": ["terminal.ansiBrightCyan"], "ansiBrightWhite": ["terminal.ansiBrightWhite"]
236261
};
237262

263+
/**
264+
* @param {string} content
265+
* @param {string} tmThemeFileName
266+
* @param {Generator} generator
267+
*/
238268
function migrate(content, tmThemeFileName, generator) {
239269
let result = {};
240270
let theme;

generators/app/generate-command-js.js

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,23 @@
44
import Generator from 'yeoman-generator';
55
import * as prompts from './prompts.js';
66

7+
8+
/**
9+
* @typedef {{
10+
* checkJavaScript: boolean
11+
* } & import('./index.js').ExtensionConfig} ExtensionConfig
12+
*/
13+
14+
/**
15+
* @type {import('./index.js').ExtensionGenerator}
16+
*/
717
export default {
818
id: 'ext-command-js',
919
aliases: ['js', 'command-js'],
1020
name: 'New Extension (JavaScript)',
1121
/**
1222
* @param {Generator} generator
13-
* @param {Object} extensionConfig
23+
* @param {ExtensionConfig} extensionConfig
1424
*/
1525
prompting: async (generator, extensionConfig) => {
1626
await prompts.askForExtensionDisplayName(generator, extensionConfig);
@@ -33,7 +43,7 @@ export default {
3343

3444
/**
3545
* @param {Generator} generator
36-
* @param {Object} extensionConfig
46+
* @param {ExtensionConfig} extensionConfig
3747
*/
3848
writing: (generator, extensionConfig) => {
3949
generator.fs.copy(generator.templatePath('vscode'), generator.destinationPath('.vscode'));

generators/app/generate-command-ts.js

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,24 @@ import Generator from 'yeoman-generator';
55
import { Chalk } from 'chalk';
66
import * as prompts from './prompts.js';
77

8+
/**
9+
* @typedef {import('./index.js').ExtensionConfig} ExtensionConfig
10+
*/
11+
12+
813
const chalk = new Chalk();
914

15+
/**
16+
* @type {import('./index.js').ExtensionGenerator}
17+
*/
1018
export default {
1119
id: 'ext-command-ts',
1220
aliases: ['ts', 'command-ts'],
1321
name: 'New Extension (TypeScript)',
1422
insidersName: 'New Extension with Proposed API (TypeScript)',
1523
/**
1624
* @param {Generator} generator
17-
* @param {Object} extensionConfig
25+
* @param {ExtensionConfig} extensionConfig
1826
*/
1927
prompting: async (generator, extensionConfig) => {
2028
await prompts.askForExtensionDisplayName(generator, extensionConfig);
@@ -27,7 +35,7 @@ export default {
2735
},
2836
/**
2937
* @param {Generator} generator
30-
* @param {Object} extensionConfig
38+
* @param {ExtensionConfig} extensionConfig
3139
*/
3240
writing: (generator, extensionConfig) => {
3341
const bundler = extensionConfig.bundler;
@@ -70,12 +78,15 @@ export default {
7078

7179
/**
7280
* @param {Generator} generator
73-
* @param {Object} extensionConfig
81+
* @param {ExtensionConfig} extensionConfig
7482
*/
7583
endMessage: (generator, extensionConfig) => {
76-
if (extensionConfig.webpack) {
84+
if (extensionConfig.bundler === 'webpack') {
7785
generator.log(chalk.yellow(`To run the extension you need to install the recommended extension 'amodio.tsl-problem-matcher'.`));
7886
generator.log('');
87+
} else if (extensionConfig.bundler === 'esbuild') {
88+
generator.log(chalk.yellow(`To run the extension you need to install the recommended extension 'connor4312.esbuild-problem-matchers'.`));
89+
generator.log('');
7990
}
8091
}
8192
}

generators/app/generate-command-web.js

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,21 @@ import Generator from 'yeoman-generator';
55
import { Chalk } from 'chalk';
66
import * as prompts from './prompts.js';
77

8+
/**
9+
* @typedef {import('./index.js').ExtensionConfig} ExtensionConfig
10+
*/
811
const chalk = new Chalk();
912

13+
/**
14+
* @type {import('./index.js').ExtensionGenerator}
15+
*/
1016
export default {
1117
id: 'ext-command-web',
1218
aliases: ['web', 'command-web'],
1319
name: 'New Web Extension (TypeScript)',
1420
/**
1521
* @param {Generator} generator
16-
* @param {Object} extensionConfig
22+
* @param {ExtensionConfig} extensionConfig
1723
*/
1824
prompting: async (generator, extensionConfig) => {
1925
await prompts.askForExtensionDisplayName(generator, extensionConfig);
@@ -26,7 +32,7 @@ export default {
2632
},
2733
/**
2834
* @param {Generator} generator
29-
* @param {Object} extensionConfig
35+
* @param {ExtensionConfig} extensionConfig
3036
*/
3137
writing: (generator, extensionConfig) => {
3238
const bundler = extensionConfig.bundler;
@@ -72,10 +78,15 @@ export default {
7278
},
7379
/**
7480
* @param {Generator} generator
75-
* @param {Object} extensionConfig
81+
* @param {ExtensionConfig} extensionConfig
7682
*/
7783
endMessage: (generator, extensionConfig) => {
78-
generator.log(chalk.yellow(`To run the extension you need to install the recommended extension 'amodio.tsl-problem-matcher'.`));
79-
generator.log('');
84+
if (extensionConfig.bundler === 'webpack') {
85+
generator.log(chalk.yellow(`To run the extension you need to install the recommended extension 'amodio.tsl-problem-matcher'.`));
86+
generator.log('');
87+
} else if (extensionConfig.bundler === 'esbuild') {
88+
generator.log(chalk.yellow(`To run the extension you need to install the recommended extension 'connor4312.esbuild-problem-matchers'.`));
89+
generator.log('');
90+
}
8091
}
8192
}

generators/app/generate-extensionpack.js

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,24 @@ import Generator from 'yeoman-generator';
55
import * as prompts from './prompts.js';
66
import * as childProcess from 'child_process';
77

8+
9+
/**
10+
* @typedef {{
11+
* extensionList: string[],
12+
* isCustomization: boolean
13+
* } & import('./index.js').ExtensionConfig} ExtensionConfig
14+
*/
15+
16+
/**
17+
* @type {import('./index.js').ExtensionGenerator}
18+
*/
819
export default {
920
id: 'ext-extensionpack',
1021
aliases: ['extensionpack'],
1122
name: 'New Extension Pack',
1223
/**
1324
* @param {Generator} generator
14-
* @param {Object} extensionConfig
25+
* @param {ExtensionConfig} extensionConfig
1526
*/
1627
prompting: async (generator, extensionConfig) => {
1728

@@ -25,7 +36,7 @@ export default {
2536
},
2637
/**
2738
* @param {Generator} generator
28-
* @param {Object} extensionConfig
39+
* @param {ExtensionConfig} extensionConfig
2940
*/
3041
writing: (generator, extensionConfig) => {
3142
generator.fs.copy(generator.templatePath('vscode'), generator.destinationPath('.vscode'));
@@ -40,7 +51,10 @@ export default {
4051
}
4152
}
4253
}
43-
54+
/**
55+
* @param {Generator} generator
56+
* @param {ExtensionConfig} extensionConfig
57+
*/
4458
function askForExtensionPackInfo(generator, extensionConfig) {
4559
extensionConfig.isCustomization = true;
4660
const defaultExtensionList = ['publisher.extensionName'];
@@ -51,7 +65,7 @@ function askForExtensionPackInfo(generator, extensionConfig) {
5165
'code --list-extensions',
5266
(error, stdout, stderr) => {
5367
if (error) {
54-
generator.env.error(error);
68+
generator.log.error(error);
5569
} else {
5670
let out = stdout.trim();
5771
if (out.length > 0) {

generators/app/generate-keymap.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,20 @@
44
import Generator from 'yeoman-generator';
55
import * as prompts from './prompts.js';
66

7+
/**
8+
* @typedef { import('./index.js').ExtensionConfig} ExtensionConfig
9+
*/
10+
11+
/**
12+
* @type {import('./index.js').ExtensionGenerator}
13+
*/
714
export default {
815
id: 'ext-keymap',
916
aliases: ['keymap'],
1017
name: 'New Keymap',
1118
/**
1219
* @param {Generator} generator
13-
* @param {Object} extensionConfig
20+
* @param {ExtensionConfig} extensionConfig
1421
*/
1522
prompting: async (generator, extensionConfig) => {
1623
await prompts.askForExtensionDisplayName(generator, extensionConfig);
@@ -21,7 +28,7 @@ export default {
2128
},
2229
/**
2330
* @param {Generator} generator
24-
* @param {Object} extensionConfig
31+
* @param {ExtensionConfig} extensionConfig
2532
*/
2633
writing: (generator, extensionConfig) => {
2734
generator.fs.copy(generator.templatePath('vscode'), generator.destinationPath('.vscode'));

0 commit comments

Comments
 (0)