generator-code 1.7.9 → 1.8.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/generators/app/dependencyVersions/package.json +16 -14
- package/generators/app/env.js +8 -7
- package/generators/app/generate-colortheme.js +12 -13
- package/generators/app/generate-command-js.js +6 -5
- package/generators/app/generate-command-ts.js +9 -6
- package/generators/app/generate-command-web.js +8 -6
- package/generators/app/generate-extensionpack.js +6 -6
- package/generators/app/generate-keymap.js +5 -5
- package/generators/app/generate-language.js +30 -27
- package/generators/app/generate-localization.js +10 -8
- package/generators/app/generate-notebook-renderer.js +7 -6
- package/generators/app/generate-snippets.js +10 -10
- package/generators/app/index.js +24 -20
- package/generators/app/prompts.js +16 -14
- package/generators/app/templates/ext-command-js/.vscode-test.mjs +5 -0
- package/generators/app/templates/ext-command-js/.vscodeignore +1 -0
- package/generators/app/templates/ext-command-js/jsconfig.json +3 -3
- package/generators/app/templates/ext-command-js/package.json +2 -3
- package/generators/app/templates/ext-command-js/vsc-extension-quickstart.md +5 -5
- package/generators/app/templates/ext-command-js/vscode/extensions.json +3 -2
- package/generators/app/templates/ext-command-js/vscode/launch.json +0 -9
- package/generators/app/templates/ext-command-ts/.eslintrc.json +8 -2
- package/generators/app/templates/ext-command-ts/.vscode-test.mjs +5 -0
- package/generators/app/templates/ext-command-ts/.vscodeignore +1 -0
- package/generators/app/templates/ext-command-ts/package.json +2 -3
- package/generators/app/templates/ext-command-ts/tsconfig.json +3 -3
- package/generators/app/templates/ext-command-ts/vsc-extension-quickstart.md +5 -4
- package/generators/app/templates/ext-command-ts/vscode/extensions.json +2 -1
- package/generators/app/templates/ext-command-ts/vscode/launch.json +0 -13
- package/generators/app/templates/ext-command-ts/vscode-webpack/.vscodeignore +1 -0
- package/generators/app/templates/ext-command-ts/vscode-webpack/package.json +2 -3
- package/generators/app/templates/ext-command-ts/vscode-webpack/tsconfig.json +3 -3
- package/generators/app/templates/ext-command-ts/vscode-webpack/vsc-extension-quickstart.md +6 -5
- package/generators/app/templates/ext-command-ts/vscode-webpack/vscode/extensions.json +1 -1
- package/generators/app/templates/ext-command-ts/vscode-webpack/vscode/launch.json +0 -14
- package/generators/app/templates/ext-command-web/.vscodeignore +1 -0
- package/generators/app/templates/ext-command-web/package.json +1 -0
- package/generators/app/templates/ext-command-web/tsconfig.json +1 -1
- package/generators/app/templates/ext-command-web/vsc-extension-quickstart.md +1 -1
- package/generators/app/templates/ext-notebook-renderer/.vscode-test.mjs +5 -0
- package/generators/app/templates/ext-notebook-renderer/.vscodeignore +1 -0
- package/generators/app/templates/ext-notebook-renderer/package.json +2 -1
- package/generators/app/templates/ext-notebook-renderer/src/tsconfig-base.json +3 -4
- package/generators/app/templates/ext-notebook-renderer/vscode/extensions.json +1 -1
- package/generators/app/templates/ext-notebook-renderer/vscode/launch.json +0 -13
- package/generators/app/validator.js +31 -4
- package/package.json +9 -10
- package/generators/app/templates/ext-command-js/test/runTest.js +0 -23
- package/generators/app/templates/ext-command-js/test/suite/index.js +0 -45
- package/generators/app/templates/ext-command-ts/src/test/runTest.ts +0 -23
- package/generators/app/templates/ext-command-ts/src/test/suite/index.ts +0 -40
- package/generators/app/templates/ext-notebook-renderer/src/test/runTest.ts +0 -23
- package/generators/app/templates/ext-notebook-renderer/src/test/suite/index.ts +0 -40
- /package/generators/app/templates/ext-command-js/test/{suite/extension.test.js → extension.test.js} +0 -0
- /package/generators/app/templates/ext-command-ts/src/test/{suite/extension.test.ts → extension.test.ts} +0 -0
- /package/generators/app/templates/ext-notebook-renderer/src/test/{suite/extension.test.ts → extension.test.ts} +0 -0
|
@@ -4,26 +4,28 @@
|
|
|
4
4
|
"version": "0.0.0",
|
|
5
5
|
"private": true,
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@types/mocha": "^10.0.
|
|
7
|
+
"@types/mocha": "^10.0.6",
|
|
8
8
|
"@types/node": "18.x",
|
|
9
|
-
"@
|
|
10
|
-
"@typescript-eslint/
|
|
11
|
-
"eslint": "^
|
|
12
|
-
"
|
|
9
|
+
"@types/assert": "^1.5.10",
|
|
10
|
+
"@typescript-eslint/eslint-plugin": "^6.13.1",
|
|
11
|
+
"@typescript-eslint/parser": "^6.13.1",
|
|
12
|
+
"eslint": "^8.54.0",
|
|
13
|
+
"glob": "^10.3.10",
|
|
13
14
|
"mocha": "^10.2.0",
|
|
14
|
-
"typescript": "^5.
|
|
15
|
-
"@vscode/test-
|
|
16
|
-
"@vscode/test-
|
|
17
|
-
"@
|
|
18
|
-
"@types/
|
|
19
|
-
"
|
|
15
|
+
"typescript": "^5.3.2",
|
|
16
|
+
"@vscode/test-cli": "^0.0.4",
|
|
17
|
+
"@vscode/test-electron": "^2.3.8",
|
|
18
|
+
"@vscode/test-web": "^0.0.49",
|
|
19
|
+
"@types/webpack-env": "^1.18.4",
|
|
20
|
+
"@types/vscode-notebook-renderer": "^1.72.3",
|
|
21
|
+
"concurrently": "^8.2.2",
|
|
20
22
|
"css-loader": "^6.8.1",
|
|
21
|
-
"fork-ts-checker-webpack-plugin": "^
|
|
23
|
+
"fork-ts-checker-webpack-plugin": "^9.0.2",
|
|
22
24
|
"style-loader": "^3.3.3",
|
|
23
|
-
"ts-loader": "^9.
|
|
25
|
+
"ts-loader": "^9.5.1",
|
|
24
26
|
"vscode-dts": "^0.3.3",
|
|
25
27
|
"vscode-notebook-error-overlay": "^1.0.1",
|
|
26
|
-
"webpack": "^5.
|
|
28
|
+
"webpack": "^5.89.0",
|
|
27
29
|
"util": "^0.12.5",
|
|
28
30
|
"webpack-cli": "^5.1.4",
|
|
29
31
|
"webpack-dev-server": "^4.15.1",
|
package/generators/app/env.js
CHANGED
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
3
|
*--------------------------------------------------------*/
|
|
4
4
|
'use strict';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
import request from 'request-light';
|
|
6
|
+
import * as fs from 'fs';
|
|
7
|
+
import * as path from 'path';
|
|
8
|
+
import { fileURLToPath } from 'url';
|
|
8
9
|
|
|
9
10
|
const fallbackVersion = '^1.54.0';
|
|
10
11
|
let versionPromise = undefined;
|
|
11
12
|
|
|
12
|
-
function getLatestVSCodeVersion() {
|
|
13
|
+
export function getLatestVSCodeVersion() {
|
|
13
14
|
if (!versionPromise) {
|
|
14
15
|
versionPromise = request.xhr({ url: 'https://update.code.visualstudio.com/api/releases/stable', headers: { "X-API-Version": "2" } }).then(res => {
|
|
15
16
|
if (res.status === 200) {
|
|
@@ -37,11 +38,11 @@ function getLatestVSCodeVersion() {
|
|
|
37
38
|
}
|
|
38
39
|
return versionPromise;
|
|
39
40
|
};
|
|
40
|
-
module.exports.getLatestVSCodeVersion = getLatestVSCodeVersion;
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
export async function getDependencyVersions() {
|
|
43
43
|
const vscodeVersion = await getLatestVSCodeVersion();
|
|
44
|
-
const
|
|
44
|
+
const currentFileName = fileURLToPath(import.meta.url);
|
|
45
|
+
const versions = JSON.parse((await fs.promises.readFile(path.join(currentFileName, '..', 'dependencyVersions', 'package.json'))).toString()).dependencies;
|
|
45
46
|
versions["@types/vscode"] = vscodeVersion
|
|
46
47
|
return versions;
|
|
47
48
|
}
|
|
@@ -1,21 +1,20 @@
|
|
|
1
1
|
/*---------------------------------------------------------
|
|
2
2
|
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
3
|
*--------------------------------------------------------*/
|
|
4
|
+
import Generator from 'yeoman-generator';
|
|
5
|
+
import * as prompts from './prompts.js';
|
|
6
|
+
import * as validator from './validator.js';
|
|
7
|
+
import * as path from 'path';
|
|
8
|
+
import * as fs from 'fs';
|
|
9
|
+
import * as plistParser from 'fast-plist';
|
|
10
|
+
import request from 'request-light';
|
|
4
11
|
|
|
5
|
-
|
|
6
|
-
const validator = require('./validator');
|
|
7
|
-
const sanitize = require("sanitize-filename");
|
|
8
|
-
const path = require('path');
|
|
9
|
-
const fs = require('fs');
|
|
10
|
-
const plistParser = require('fast-plist');
|
|
11
|
-
const request = require('request-light');
|
|
12
|
-
|
|
13
|
-
module.exports = {
|
|
12
|
+
export default {
|
|
14
13
|
id: 'ext-colortheme',
|
|
15
14
|
aliases: ['colortheme'],
|
|
16
15
|
name: 'New Color Theme',
|
|
17
16
|
/**
|
|
18
|
-
* @param {
|
|
17
|
+
* @param {Generator} generator
|
|
19
18
|
* @param {Object} extensionConfig
|
|
20
19
|
*/
|
|
21
20
|
prompting: async (generator, extensionConfig) => {
|
|
@@ -63,14 +62,14 @@ module.exports = {
|
|
|
63
62
|
await prompts.askForGit(generator, extensionConfig);
|
|
64
63
|
},
|
|
65
64
|
/**
|
|
66
|
-
* @param {
|
|
65
|
+
* @param {Generator} generator
|
|
67
66
|
* @param {Object} extensionConfig
|
|
68
67
|
*/
|
|
69
68
|
writing: (generator, extensionConfig) => {
|
|
70
69
|
if (extensionConfig.tmThemeFileName) {
|
|
71
70
|
generator.fs.copyTpl(generator.templatePath('themes/theme.tmTheme'), generator.destinationPath('themes', extensionConfig.tmThemeFileName), extensionConfig);
|
|
72
71
|
}
|
|
73
|
-
extensionConfig.themeFileName =
|
|
72
|
+
extensionConfig.themeFileName = validator.sanitizeFilename(extensionConfig.themeName + '-color-theme.json');
|
|
74
73
|
if (extensionConfig.themeContent) {
|
|
75
74
|
extensionConfig.themeContent.name = extensionConfig.themeName;
|
|
76
75
|
generator.fs.copyTpl(generator.templatePath('themes/color-theme.json'), generator.destinationPath('themes', extensionConfig.themeFileName), extensionConfig);
|
|
@@ -92,7 +91,7 @@ module.exports = {
|
|
|
92
91
|
}
|
|
93
92
|
|
|
94
93
|
/**
|
|
95
|
-
* @param {
|
|
94
|
+
* @param {Generator} generator
|
|
96
95
|
* @param {Object} extensionConfig
|
|
97
96
|
*/
|
|
98
97
|
async function askForThemeInfo(generator, extensionConfig) {
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/*---------------------------------------------------------
|
|
2
2
|
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
3
|
*--------------------------------------------------------*/
|
|
4
|
+
import Generator from 'yeoman-generator';
|
|
5
|
+
import * as prompts from './prompts.js';
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
module.exports = {
|
|
7
|
+
export default {
|
|
8
8
|
id: 'ext-command-js',
|
|
9
9
|
aliases: ['js', 'command-js'],
|
|
10
10
|
name: 'New Extension (JavaScript)',
|
|
11
11
|
/**
|
|
12
|
-
* @param {
|
|
12
|
+
* @param {Generator} generator
|
|
13
13
|
* @param {Object} extensionConfig
|
|
14
14
|
*/
|
|
15
15
|
prompting: async (generator, extensionConfig) => {
|
|
@@ -32,7 +32,7 @@ module.exports = {
|
|
|
32
32
|
},
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
|
-
* @param {
|
|
35
|
+
* @param {Generator} generator
|
|
36
36
|
* @param {Object} extensionConfig
|
|
37
37
|
*/
|
|
38
38
|
writing: (generator, extensionConfig) => {
|
|
@@ -52,6 +52,7 @@ module.exports = {
|
|
|
52
52
|
|
|
53
53
|
generator.fs.copyTpl(generator.templatePath('extension.js'), generator.destinationPath('extension.js'), extensionConfig);
|
|
54
54
|
generator.fs.copyTpl(generator.templatePath('package.json'), generator.destinationPath('package.json'), extensionConfig);
|
|
55
|
+
generator.fs.copy(generator.templatePath('.vscode-test.mjs'), generator.destinationPath('.vscode-test.mjs'));
|
|
55
56
|
generator.fs.copyTpl(generator.templatePath('.eslintrc.json'), generator.destinationPath('.eslintrc.json'), extensionConfig);
|
|
56
57
|
|
|
57
58
|
if (extensionConfig.pkgManager === 'yarn') {
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
/*---------------------------------------------------------
|
|
2
2
|
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
3
|
*--------------------------------------------------------*/
|
|
4
|
+
import Generator from 'yeoman-generator';
|
|
5
|
+
import { Chalk } from 'chalk';
|
|
6
|
+
import * as prompts from './prompts.js';
|
|
4
7
|
|
|
5
|
-
const chalk =
|
|
6
|
-
const prompts = require("./prompts");
|
|
8
|
+
const chalk = new Chalk();
|
|
7
9
|
|
|
8
|
-
|
|
10
|
+
export default {
|
|
9
11
|
id: 'ext-command-ts',
|
|
10
12
|
aliases: ['ts', 'command-ts'],
|
|
11
13
|
name: 'New Extension (TypeScript)',
|
|
12
14
|
insidersName: 'New Extension with Proposed API (TypeScript)',
|
|
13
15
|
/**
|
|
14
|
-
* @param {
|
|
16
|
+
* @param {Generator} generator
|
|
15
17
|
* @param {Object} extensionConfig
|
|
16
18
|
*/
|
|
17
19
|
prompting: async (generator, extensionConfig) => {
|
|
@@ -24,7 +26,7 @@ module.exports = {
|
|
|
24
26
|
await prompts.askForPackageManager(generator, extensionConfig);
|
|
25
27
|
},
|
|
26
28
|
/**
|
|
27
|
-
* @param {
|
|
29
|
+
* @param {Generator} generator
|
|
28
30
|
* @param {Object} extensionConfig
|
|
29
31
|
*/
|
|
30
32
|
writing: (generator, extensionConfig) => {
|
|
@@ -50,6 +52,7 @@ module.exports = {
|
|
|
50
52
|
generator.fs.copyTpl(generator.templatePath('CHANGELOG.md'), generator.destinationPath('CHANGELOG.md'), extensionConfig);
|
|
51
53
|
generator.fs.copyTpl(generator.templatePath('src/extension.ts'), generator.destinationPath('src/extension.ts'), extensionConfig);
|
|
52
54
|
generator.fs.copy(generator.templatePath('src/test'), generator.destinationPath('src/test'));
|
|
55
|
+
generator.fs.copy(generator.templatePath('.vscode-test.mjs'), generator.destinationPath('.vscode-test.mjs'));
|
|
53
56
|
generator.fs.copy(generator.templatePath('.eslintrc.json'), generator.destinationPath('.eslintrc.json'));
|
|
54
57
|
|
|
55
58
|
if (extensionConfig.pkgManager === 'yarn') {
|
|
@@ -63,7 +66,7 @@ module.exports = {
|
|
|
63
66
|
},
|
|
64
67
|
|
|
65
68
|
/**
|
|
66
|
-
* @param {
|
|
69
|
+
* @param {Generator} generator
|
|
67
70
|
* @param {Object} extensionConfig
|
|
68
71
|
*/
|
|
69
72
|
endMessage: (generator, extensionConfig) => {
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
/*---------------------------------------------------------
|
|
2
2
|
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
3
|
*--------------------------------------------------------*/
|
|
4
|
+
import Generator from 'yeoman-generator';
|
|
5
|
+
import { Chalk } from 'chalk';
|
|
6
|
+
import * as prompts from './prompts.js';
|
|
4
7
|
|
|
5
|
-
const chalk =
|
|
6
|
-
const prompts = require("./prompts");
|
|
8
|
+
const chalk = new Chalk();
|
|
7
9
|
|
|
8
|
-
|
|
10
|
+
export default {
|
|
9
11
|
id: 'ext-command-web',
|
|
10
12
|
aliases: ['web', 'command-web'],
|
|
11
13
|
name: 'New Web Extension (TypeScript)',
|
|
12
14
|
/**
|
|
13
|
-
* @param {
|
|
15
|
+
* @param {Generator} generator
|
|
14
16
|
* @param {Object} extensionConfig
|
|
15
17
|
*/
|
|
16
18
|
prompting: async (generator, extensionConfig) => {
|
|
@@ -22,7 +24,7 @@ module.exports = {
|
|
|
22
24
|
await prompts.askForPackageManager(generator, extensionConfig);
|
|
23
25
|
},
|
|
24
26
|
/**
|
|
25
|
-
* @param {
|
|
27
|
+
* @param {Generator} generator
|
|
26
28
|
* @param {Object} extensionConfig
|
|
27
29
|
*/
|
|
28
30
|
writing: (generator, extensionConfig) => {
|
|
@@ -55,7 +57,7 @@ module.exports = {
|
|
|
55
57
|
extensionConfig.proposedAPI = false;
|
|
56
58
|
},
|
|
57
59
|
/**
|
|
58
|
-
* @param {
|
|
60
|
+
* @param {Generator} generator
|
|
59
61
|
* @param {Object} extensionConfig
|
|
60
62
|
*/
|
|
61
63
|
endMessage: (generator, extensionConfig) => {
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
/*---------------------------------------------------------
|
|
2
2
|
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
3
|
*--------------------------------------------------------*/
|
|
4
|
+
import Generator from 'yeoman-generator';
|
|
5
|
+
import * as prompts from './prompts.js';
|
|
6
|
+
import * as childProcess from 'child_process';
|
|
4
7
|
|
|
5
|
-
|
|
6
|
-
let childProcess = require('child_process');
|
|
7
|
-
|
|
8
|
-
module.exports = {
|
|
8
|
+
export default {
|
|
9
9
|
id: 'ext-extensionpack',
|
|
10
10
|
aliases: ['extensionpack'],
|
|
11
11
|
name: 'New Extension Pack',
|
|
12
12
|
/**
|
|
13
|
-
* @param {
|
|
13
|
+
* @param {Generator} generator
|
|
14
14
|
* @param {Object} extensionConfig
|
|
15
15
|
*/
|
|
16
16
|
prompting: async (generator, extensionConfig) => {
|
|
@@ -24,7 +24,7 @@ module.exports = {
|
|
|
24
24
|
await prompts.askForGit(generator, extensionConfig);
|
|
25
25
|
},
|
|
26
26
|
/**
|
|
27
|
-
* @param {
|
|
27
|
+
* @param {Generator} generator
|
|
28
28
|
* @param {Object} extensionConfig
|
|
29
29
|
*/
|
|
30
30
|
writing: (generator, extensionConfig) => {
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/*---------------------------------------------------------
|
|
2
2
|
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
3
|
*--------------------------------------------------------*/
|
|
4
|
+
import Generator from 'yeoman-generator';
|
|
5
|
+
import * as prompts from './prompts.js';
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
module.exports = {
|
|
7
|
+
export default {
|
|
8
8
|
id: 'ext-keymap',
|
|
9
9
|
aliases: ['keymap'],
|
|
10
10
|
name: 'New Keymap',
|
|
11
11
|
/**
|
|
12
|
-
* @param {
|
|
12
|
+
* @param {Generator} generator
|
|
13
13
|
* @param {Object} extensionConfig
|
|
14
14
|
*/
|
|
15
15
|
prompting: async (generator, extensionConfig) => {
|
|
@@ -20,7 +20,7 @@ module.exports = {
|
|
|
20
20
|
await prompts.askForGit(generator, extensionConfig);
|
|
21
21
|
},
|
|
22
22
|
/**
|
|
23
|
-
* @param {
|
|
23
|
+
* @param {Generator} generator
|
|
24
24
|
* @param {Object} extensionConfig
|
|
25
25
|
*/
|
|
26
26
|
writing: (generator, extensionConfig) => {
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
/*---------------------------------------------------------
|
|
2
2
|
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
3
|
*--------------------------------------------------------*/
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
import Generator from 'yeoman-generator';
|
|
5
|
+
import * as prompts from './prompts.js';
|
|
6
|
+
import * as path from 'path';
|
|
7
|
+
import * as fs from 'fs';
|
|
8
|
+
import * as plistParser from 'fast-plist';
|
|
9
|
+
import request from 'request-light';
|
|
10
|
+
import * as validator from './validator.js';
|
|
11
|
+
|
|
12
|
+
export default {
|
|
13
13
|
id: 'ext-language',
|
|
14
14
|
aliases: ['language'],
|
|
15
15
|
name: 'New Language Support',
|
|
16
16
|
/**
|
|
17
|
-
* @param {
|
|
17
|
+
* @param {Generator} generator
|
|
18
18
|
* @param {Object} extensionConfig
|
|
19
19
|
*/
|
|
20
20
|
prompting: async (generator, extensionConfig) => {
|
|
@@ -33,16 +33,16 @@ module.exports = {
|
|
|
33
33
|
|
|
34
34
|
},
|
|
35
35
|
/**
|
|
36
|
-
* @param {
|
|
36
|
+
* @param {Generator} generator
|
|
37
37
|
* @param {Object} extensionConfig
|
|
38
38
|
*/
|
|
39
39
|
writing: (generator, extensionConfig) => {
|
|
40
40
|
if (!extensionConfig.languageContent) {
|
|
41
|
-
extensionConfig.languageFileName =
|
|
41
|
+
extensionConfig.languageFileName = validator.sanitizeFilename(extensionConfig.languageId + '.tmLanguage.json');
|
|
42
42
|
|
|
43
43
|
generator.fs.copyTpl(generator.templatePath('syntaxes/new.tmLanguage.json'), generator.destinationPath('syntaxes', extensionConfig.languageFileName), extensionConfig);
|
|
44
44
|
} else {
|
|
45
|
-
generator.fs.copyTpl(generator.templatePath('syntaxes/language.tmLanguage'), generator.destinationPath('syntaxes',
|
|
45
|
+
generator.fs.copyTpl(generator.templatePath('syntaxes/language.tmLanguage'), generator.destinationPath('syntaxes', validator.sanitizeFilename(extensionConfig.languageFileName)), extensionConfig);
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
generator.fs.copy(generator.templatePath('vscode'), generator.destinationPath('.vscode'));
|
|
@@ -59,7 +59,7 @@ module.exports = {
|
|
|
59
59
|
}
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
|
-
* @param {
|
|
62
|
+
* @param {Generator} generator
|
|
63
63
|
* @param {Object} extensionConfig
|
|
64
64
|
*/
|
|
65
65
|
function askForLanguageInfo(generator, extensionConfig) {
|
|
@@ -76,7 +76,7 @@ function askForLanguageInfo(generator, extensionConfig) {
|
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
/**
|
|
79
|
-
* @param {
|
|
79
|
+
* @param {Generator} generator
|
|
80
80
|
* @param {Object} extensionConfig
|
|
81
81
|
*/
|
|
82
82
|
function askForLanguageId(generator, extensionConfig) {
|
|
@@ -92,7 +92,7 @@ function askForLanguageId(generator, extensionConfig) {
|
|
|
92
92
|
}
|
|
93
93
|
|
|
94
94
|
/**
|
|
95
|
-
* @param {
|
|
95
|
+
* @param {Generator} generator
|
|
96
96
|
* @param {Object} extensionConfig
|
|
97
97
|
*/
|
|
98
98
|
function askForLanguageName(generator, extensionConfig) {
|
|
@@ -108,7 +108,7 @@ function askForLanguageName(generator, extensionConfig) {
|
|
|
108
108
|
}
|
|
109
109
|
|
|
110
110
|
/**
|
|
111
|
-
* @param {
|
|
111
|
+
* @param {Generator} generator
|
|
112
112
|
* @param {Object} extensionConfig
|
|
113
113
|
*/
|
|
114
114
|
function askForLanguageExtensions(generator, extensionConfig) {
|
|
@@ -124,7 +124,7 @@ function askForLanguageExtensions(generator, extensionConfig) {
|
|
|
124
124
|
}
|
|
125
125
|
|
|
126
126
|
/**
|
|
127
|
-
* @param {
|
|
127
|
+
* @param {Generator} generator
|
|
128
128
|
* @param {Object} extensionConfig
|
|
129
129
|
*/
|
|
130
130
|
function askForLanguageScopeName(generator, extensionConfig) {
|
|
@@ -154,10 +154,13 @@ function convertGrammar(location, extensionConfig) {
|
|
|
154
154
|
// load from url
|
|
155
155
|
return request.xhr({ url: location }).then(r => {
|
|
156
156
|
if (r.status == 200) {
|
|
157
|
-
|
|
158
|
-
|
|
157
|
+
let contentDisposition = r.headers && r.headers['content-disposition'];
|
|
158
|
+
if (Array.isArray(contentDisposition)) {
|
|
159
|
+
contentDisposition = contentDisposition[0];
|
|
160
|
+
}
|
|
161
|
+
let fileName = '';
|
|
159
162
|
if (contentDisposition) {
|
|
160
|
-
|
|
163
|
+
const fileNameMatch = contentDisposition.match(/filename="([^"]*)/);
|
|
161
164
|
if (fileNameMatch) {
|
|
162
165
|
fileName = fileNameMatch[1];
|
|
163
166
|
}
|
|
@@ -170,7 +173,7 @@ function convertGrammar(location, extensionConfig) {
|
|
|
170
173
|
|
|
171
174
|
} else {
|
|
172
175
|
// load from disk
|
|
173
|
-
|
|
176
|
+
let body = null;
|
|
174
177
|
// trim the spaces of the location path
|
|
175
178
|
location = location.trim()
|
|
176
179
|
try {
|
|
@@ -187,7 +190,7 @@ function convertGrammar(location, extensionConfig) {
|
|
|
187
190
|
}
|
|
188
191
|
|
|
189
192
|
function processContent(extensionConfig, fileName, body) {
|
|
190
|
-
|
|
193
|
+
let languageInfo;
|
|
191
194
|
if (path.extname(fileName) === '.json') {
|
|
192
195
|
try {
|
|
193
196
|
languageInfo = JSON.parse(body);
|
|
@@ -212,19 +215,19 @@ function processContent(extensionConfig, fileName, body) {
|
|
|
212
215
|
extensionConfig.languageName = languageInfo.name || '';
|
|
213
216
|
|
|
214
217
|
// evaluate language id
|
|
215
|
-
|
|
216
|
-
|
|
218
|
+
let languageId = '';
|
|
219
|
+
let languageScopeName;
|
|
217
220
|
|
|
218
221
|
if (languageInfo.scopeName) {
|
|
219
222
|
languageScopeName = languageInfo.scopeName;
|
|
220
223
|
|
|
221
|
-
|
|
224
|
+
const lastIndexOfDot = languageInfo.scopeName.lastIndexOf('.');
|
|
222
225
|
if (lastIndexOfDot) {
|
|
223
226
|
languageId = languageInfo.scopeName.substring(lastIndexOfDot + 1);
|
|
224
227
|
}
|
|
225
228
|
}
|
|
226
229
|
if (!languageId && fileName) {
|
|
227
|
-
|
|
230
|
+
const lastIndexOfDot2 = fileName.lastIndexOf('.');
|
|
228
231
|
if (lastIndexOfDot2 && fileName.substring(lastIndexOfDot2 + 1) == 'tmLanguage') {
|
|
229
232
|
languageId = fileName.substring(0, lastIndexOfDot2);
|
|
230
233
|
}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
/*---------------------------------------------------------
|
|
2
2
|
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
3
|
*--------------------------------------------------------*/
|
|
4
|
+
import Generator from 'yeoman-generator';
|
|
5
|
+
import * as prompts from './prompts.js';
|
|
6
|
+
import { Chalk } from 'chalk';
|
|
4
7
|
|
|
5
|
-
const
|
|
6
|
-
const chalk = require("chalk");
|
|
8
|
+
const chalk = new Chalk();
|
|
7
9
|
|
|
8
|
-
|
|
10
|
+
export default {
|
|
9
11
|
id: 'ext-localization',
|
|
10
12
|
aliases: ['localization'],
|
|
11
13
|
name: 'New Language Pack (Localization)',
|
|
12
14
|
/**
|
|
13
|
-
* @param {
|
|
15
|
+
* @param {Generator} generator
|
|
14
16
|
* @param {Object} extensionConfig
|
|
15
17
|
*/
|
|
16
18
|
prompting: async (generator, extensionConfig) => {
|
|
@@ -26,7 +28,7 @@ module.exports = {
|
|
|
26
28
|
await prompts.askForPackageManager(generator, extensionConfig);
|
|
27
29
|
},
|
|
28
30
|
/**
|
|
29
|
-
* @param {
|
|
31
|
+
* @param {Generator} generator
|
|
30
32
|
* @param {Object} extensionConfig
|
|
31
33
|
*/
|
|
32
34
|
writing: (generator, extensionConfig) => {
|
|
@@ -54,7 +56,7 @@ module.exports = {
|
|
|
54
56
|
}
|
|
55
57
|
|
|
56
58
|
/**
|
|
57
|
-
* @param {
|
|
59
|
+
* @param {Generator} generator
|
|
58
60
|
* @param {Object} extensionConfig
|
|
59
61
|
*/
|
|
60
62
|
function askForLanguageId(generator, extensionConfig) {
|
|
@@ -74,7 +76,7 @@ function askForLanguageId(generator, extensionConfig) {
|
|
|
74
76
|
}
|
|
75
77
|
|
|
76
78
|
/**
|
|
77
|
-
* @param {
|
|
79
|
+
* @param {Generator} generator
|
|
78
80
|
* @param {Object} extensionConfig
|
|
79
81
|
*/
|
|
80
82
|
function askForLanguageName(generator, extensionConfig) {
|
|
@@ -97,7 +99,7 @@ function askForLanguageName(generator, extensionConfig) {
|
|
|
97
99
|
}
|
|
98
100
|
|
|
99
101
|
/**
|
|
100
|
-
* @param {
|
|
102
|
+
* @param {Generator} generator
|
|
101
103
|
* @param {Object} extensionConfig
|
|
102
104
|
*/
|
|
103
105
|
function askForLocalizedLanguageName(generator, extensionConfig) {
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
/*---------------------------------------------------------
|
|
2
2
|
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
3
|
*--------------------------------------------------------*/
|
|
4
|
+
import Generator from 'yeoman-generator';
|
|
5
|
+
import * as prompts from './prompts.js';
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
module.exports = {
|
|
7
|
+
export default {
|
|
8
8
|
id: 'ext-notebook-renderer',
|
|
9
9
|
aliases: ['notebook'],
|
|
10
10
|
name: 'New Notebook Renderer (TypeScript)',
|
|
11
11
|
/**
|
|
12
|
-
* @param {
|
|
12
|
+
* @param {Generator} generator
|
|
13
13
|
* @param {Object} extensionConfig
|
|
14
14
|
*/
|
|
15
15
|
prompting: async (generator, extensionConfig) => {
|
|
@@ -24,7 +24,7 @@ module.exports = {
|
|
|
24
24
|
|
|
25
25
|
},
|
|
26
26
|
/**
|
|
27
|
-
* @param {
|
|
27
|
+
* @param {Generator} generator
|
|
28
28
|
* @param {Object} extensionConfig
|
|
29
29
|
*/
|
|
30
30
|
writing: (generator, extensionConfig) => {
|
|
@@ -35,6 +35,7 @@ module.exports = {
|
|
|
35
35
|
generator.fs.copy(generator.templatePath('.vscodeignore'), generator.destinationPath('.vscodeignore'));
|
|
36
36
|
generator.fs.copy(generator.templatePath('webpack.config.js'), generator.destinationPath('webpack.config.js'));
|
|
37
37
|
generator.fs.copy(generator.templatePath('.eslintrc.json'), generator.destinationPath('.eslintrc.json'));
|
|
38
|
+
generator.fs.copy(generator.templatePath('.vscode-test.mjs'), generator.destinationPath('.vscode-test.mjs'));
|
|
38
39
|
|
|
39
40
|
generator.fs.copyTpl(generator.templatePath('package.json'), generator.destinationPath('package.json'), extensionConfig);
|
|
40
41
|
generator.fs.copyTpl(generator.templatePath('README.md'), generator.destinationPath('README.md'), extensionConfig);
|
|
@@ -60,7 +61,7 @@ module.exports = {
|
|
|
60
61
|
}
|
|
61
62
|
|
|
62
63
|
/**
|
|
63
|
-
* @param {
|
|
64
|
+
* @param {Generator} generator
|
|
64
65
|
* @param {Object} extensionConfig
|
|
65
66
|
*/
|
|
66
67
|
async function askForNotebookRendererInfo(generator, extensionConfig) {
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/*---------------------------------------------------------
|
|
2
2
|
* Copyright (C) Microsoft Corporation. All rights reserved.
|
|
3
3
|
*--------------------------------------------------------*/
|
|
4
|
+
import Generator from 'yeoman-generator';
|
|
5
|
+
import * as prompts from "./prompts.js";
|
|
6
|
+
import * as path from 'path';
|
|
7
|
+
import * as fs from 'fs';
|
|
8
|
+
import * as plistParser from 'fast-plist';
|
|
4
9
|
|
|
5
|
-
|
|
6
|
-
const path = require('path');
|
|
7
|
-
const fs = require('fs');
|
|
8
|
-
const plistParser = require('fast-plist');
|
|
9
|
-
|
|
10
|
-
module.exports = {
|
|
10
|
+
export default {
|
|
11
11
|
id: 'ext-snippets',
|
|
12
12
|
aliases: ['snippets'],
|
|
13
13
|
name: 'New Code Snippets',
|
|
14
14
|
/**
|
|
15
|
-
* @param {
|
|
15
|
+
* @param {Generator} generator
|
|
16
16
|
* @param {Object} extensionConfig
|
|
17
17
|
*/
|
|
18
18
|
prompting: async (generator, extensionConfig) => {
|
|
@@ -27,7 +27,7 @@ module.exports = {
|
|
|
27
27
|
|
|
28
28
|
},
|
|
29
29
|
/**
|
|
30
|
-
* @param {
|
|
30
|
+
* @param {Generator} generator
|
|
31
31
|
* @param {Object} extensionConfig
|
|
32
32
|
*/
|
|
33
33
|
writing: (generator, extensionConfig) => {
|
|
@@ -45,7 +45,7 @@ module.exports = {
|
|
|
45
45
|
}
|
|
46
46
|
}
|
|
47
47
|
/**
|
|
48
|
-
* @param {
|
|
48
|
+
* @param {Generator} generator
|
|
49
49
|
* @param {Object} extensionConfig
|
|
50
50
|
*/
|
|
51
51
|
function askForSnippetsInfo(generator, extensionConfig) {
|
|
@@ -90,7 +90,7 @@ function askForSnippetsInfo(generator, extensionConfig) {
|
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
/**
|
|
93
|
-
* @param {
|
|
93
|
+
* @param {Generator} generator
|
|
94
94
|
* @param {Object} extensionConfig
|
|
95
95
|
*/
|
|
96
96
|
function askForSnippetLanguage(generator, extensionConfig) {
|