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.
Files changed (56) hide show
  1. package/generators/app/dependencyVersions/package.json +16 -14
  2. package/generators/app/env.js +8 -7
  3. package/generators/app/generate-colortheme.js +12 -13
  4. package/generators/app/generate-command-js.js +6 -5
  5. package/generators/app/generate-command-ts.js +9 -6
  6. package/generators/app/generate-command-web.js +8 -6
  7. package/generators/app/generate-extensionpack.js +6 -6
  8. package/generators/app/generate-keymap.js +5 -5
  9. package/generators/app/generate-language.js +30 -27
  10. package/generators/app/generate-localization.js +10 -8
  11. package/generators/app/generate-notebook-renderer.js +7 -6
  12. package/generators/app/generate-snippets.js +10 -10
  13. package/generators/app/index.js +24 -20
  14. package/generators/app/prompts.js +16 -14
  15. package/generators/app/templates/ext-command-js/.vscode-test.mjs +5 -0
  16. package/generators/app/templates/ext-command-js/.vscodeignore +1 -0
  17. package/generators/app/templates/ext-command-js/jsconfig.json +3 -3
  18. package/generators/app/templates/ext-command-js/package.json +2 -3
  19. package/generators/app/templates/ext-command-js/vsc-extension-quickstart.md +5 -5
  20. package/generators/app/templates/ext-command-js/vscode/extensions.json +3 -2
  21. package/generators/app/templates/ext-command-js/vscode/launch.json +0 -9
  22. package/generators/app/templates/ext-command-ts/.eslintrc.json +8 -2
  23. package/generators/app/templates/ext-command-ts/.vscode-test.mjs +5 -0
  24. package/generators/app/templates/ext-command-ts/.vscodeignore +1 -0
  25. package/generators/app/templates/ext-command-ts/package.json +2 -3
  26. package/generators/app/templates/ext-command-ts/tsconfig.json +3 -3
  27. package/generators/app/templates/ext-command-ts/vsc-extension-quickstart.md +5 -4
  28. package/generators/app/templates/ext-command-ts/vscode/extensions.json +2 -1
  29. package/generators/app/templates/ext-command-ts/vscode/launch.json +0 -13
  30. package/generators/app/templates/ext-command-ts/vscode-webpack/.vscodeignore +1 -0
  31. package/generators/app/templates/ext-command-ts/vscode-webpack/package.json +2 -3
  32. package/generators/app/templates/ext-command-ts/vscode-webpack/tsconfig.json +3 -3
  33. package/generators/app/templates/ext-command-ts/vscode-webpack/vsc-extension-quickstart.md +6 -5
  34. package/generators/app/templates/ext-command-ts/vscode-webpack/vscode/extensions.json +1 -1
  35. package/generators/app/templates/ext-command-ts/vscode-webpack/vscode/launch.json +0 -14
  36. package/generators/app/templates/ext-command-web/.vscodeignore +1 -0
  37. package/generators/app/templates/ext-command-web/package.json +1 -0
  38. package/generators/app/templates/ext-command-web/tsconfig.json +1 -1
  39. package/generators/app/templates/ext-command-web/vsc-extension-quickstart.md +1 -1
  40. package/generators/app/templates/ext-notebook-renderer/.vscode-test.mjs +5 -0
  41. package/generators/app/templates/ext-notebook-renderer/.vscodeignore +1 -0
  42. package/generators/app/templates/ext-notebook-renderer/package.json +2 -1
  43. package/generators/app/templates/ext-notebook-renderer/src/tsconfig-base.json +3 -4
  44. package/generators/app/templates/ext-notebook-renderer/vscode/extensions.json +1 -1
  45. package/generators/app/templates/ext-notebook-renderer/vscode/launch.json +0 -13
  46. package/generators/app/validator.js +31 -4
  47. package/package.json +9 -10
  48. package/generators/app/templates/ext-command-js/test/runTest.js +0 -23
  49. package/generators/app/templates/ext-command-js/test/suite/index.js +0 -45
  50. package/generators/app/templates/ext-command-ts/src/test/runTest.ts +0 -23
  51. package/generators/app/templates/ext-command-ts/src/test/suite/index.ts +0 -40
  52. package/generators/app/templates/ext-notebook-renderer/src/test/runTest.ts +0 -23
  53. package/generators/app/templates/ext-notebook-renderer/src/test/suite/index.ts +0 -40
  54. /package/generators/app/templates/ext-command-js/test/{suite/extension.test.js → extension.test.js} +0 -0
  55. /package/generators/app/templates/ext-command-ts/src/test/{suite/extension.test.ts → extension.test.ts} +0 -0
  56. /package/generators/app/templates/ext-notebook-renderer/src/test/{suite/extension.test.ts → extension.test.ts} +0 -0
@@ -3,30 +3,29 @@
3
3
  *--------------------------------------------------------*/
4
4
  'use strict';
5
5
 
6
- const Generator = require('yeoman-generator');
7
- const yosay = require('yosay');
8
-
9
- const path = require('path');
10
- const env = require('./env');
11
- const which = require('which');
12
-
13
- const colortheme = require('./generate-colortheme');
14
- const commandjs = require('./generate-command-js');
15
- const commandts = require('./generate-command-ts');
16
- const commandweb = require('./generate-command-web');
17
- const extensionpack = require('./generate-extensionpack');
18
- const keymap = require('./generate-keymap');
19
- const language = require('./generate-language');
20
- const localization = require('./generate-localization');
21
- const notebook = require('./generate-notebook-renderer');
22
- const snippets = require('./generate-snippets');
6
+ import Generator from 'yeoman-generator';
7
+ import yosay from 'yosay';
8
+ import { fileURLToPath } from 'url';
9
+ import * as path from 'path';
10
+ import * as env from './env.js';
11
+ import which from 'which';
12
+ import colortheme from './generate-colortheme.js';
13
+ import commandjs from './generate-command-js.js';
14
+ import commandts from './generate-command-ts.js';
15
+ import commandweb from './generate-command-web.js';
16
+ import extensionpack from './generate-extensionpack.js';
17
+ import keymap from './generate-keymap.js';
18
+ import language from './generate-language.js';
19
+ import localization from './generate-localization.js';
20
+ import notebook from './generate-notebook-renderer.js';
21
+ import snippets from './generate-snippets.js';
23
22
 
24
23
  const extensionGenerators = [
25
24
  commandts, commandjs, colortheme, language, snippets, keymap, extensionpack, localization,
26
25
  commandweb, notebook
27
26
  ]
28
27
 
29
- module.exports = class extends Generator {
28
+ export default class extends Generator {
30
29
 
31
30
  constructor(args, opts) {
32
31
  super(args, opts);
@@ -126,6 +125,7 @@ module.exports = class extends Generator {
126
125
  try {
127
126
  await this.extensionGenerator.prompting(this, this.extensionConfig);
128
127
  } catch (e) {
128
+ console.log(e);
129
129
  this.abort = true;
130
130
  }
131
131
 
@@ -143,7 +143,8 @@ module.exports = class extends Generator {
143
143
  this.log();
144
144
  this.log(`Writing in ${this.destinationPath()}...`);
145
145
 
146
- this.sourceRoot(path.join(__dirname, './templates/' + this.extensionConfig.type));
146
+ const currentFilename = fileURLToPath(import.meta.url);
147
+ this.sourceRoot(path.join(currentFilename, '../templates/' + this.extensionConfig.type));
147
148
 
148
149
  return this.extensionGenerator.writing(this, this.extensionConfig);
149
150
  }
@@ -151,12 +152,15 @@ module.exports = class extends Generator {
151
152
  // Installation
152
153
  install() {
153
154
  if (this.abort) {
155
+ // @ts-ignore
154
156
  this.env.options.skipInstall = true;
155
157
  return;
156
158
  }
157
159
  if (this.extensionConfig.installDependencies) {
160
+ // @ts-ignore
158
161
  this.env.options.nodePackageManager = this.extensionConfig.pkgManager;
159
162
  } else {
163
+ // @ts-ignore
160
164
  this.env.options.skipInstall = true;
161
165
  }
162
166
  }
@@ -185,7 +189,7 @@ module.exports = class extends Generator {
185
189
 
186
190
  // Git init
187
191
  if (this.extensionConfig.gitInit) {
188
- this.spawnCommand('git', ['init', '--quiet', '--initial-branch=main']);
192
+ this.spawnCommand('git', ['init', '--quiet']);
189
193
  }
190
194
 
191
195
  if (this.extensionConfig.proposedAPI) {
@@ -3,14 +3,16 @@
3
3
  * Copyright (C) Microsoft Corporation. All rights reserved.
4
4
  *--------------------------------------------------------*/
5
5
 
6
- const validator = require('./validator');
7
- const path = require('path');
6
+ import Generator from 'yeoman-generator';
7
+
8
+ import * as validator from './validator.js';
9
+ import * as path from 'path';
8
10
 
9
11
  /**
10
- * @param {import('yeoman-generator')} generator
12
+ * @param {Generator} generator
11
13
  * @param {Object} extensionConfig
12
14
  */
13
- exports.askForExtensionDisplayName = (generator, extensionConfig) => {
15
+ export function askForExtensionDisplayName(generator, extensionConfig) {
14
16
  let extensionDisplayName = generator.options['extensionDisplayName'];
15
17
  if (extensionDisplayName) {
16
18
  extensionConfig.displayName = extensionDisplayName;
@@ -35,10 +37,10 @@ exports.askForExtensionDisplayName = (generator, extensionConfig) => {
35
37
 
36
38
  /**
37
39
  * Ask for extension id ("name" in package.json)
38
- * @param {import('yeoman-generator')} generator
40
+ * @param {Generator} generator
39
41
  * @param {Object} extensionConfig
40
42
  */
41
- exports.askForExtensionId = (generator, extensionConfig) => {
43
+ export function askForExtensionId(generator, extensionConfig) {
42
44
  let extensionName = generator.options['extensionId'];
43
45
  if (extensionName) {
44
46
  extensionConfig.name = extensionName;
@@ -66,10 +68,10 @@ exports.askForExtensionId = (generator, extensionConfig) => {
66
68
 
67
69
  /**
68
70
  * Ask for extension description
69
- * @param {import('yeoman-generator')} generator
71
+ * @param {Generator} generator
70
72
  * @param {Object} extensionConfig
71
73
  */
72
- exports.askForExtensionDescription = (generator, extensionConfig) => {
74
+ export function askForExtensionDescription(generator, extensionConfig) {
73
75
  let extensionDescription = generator.options['extensionDescription'];
74
76
  if (extensionDescription) {
75
77
  extensionConfig.description = extensionDescription;
@@ -91,10 +93,10 @@ exports.askForExtensionDescription = (generator, extensionConfig) => {
91
93
  }
92
94
 
93
95
  /**
94
- * @param {import('yeoman-generator')} generator
96
+ * @param {Generator} generator
95
97
  * @param {Object} extensionConfig
96
98
  */
97
- exports.askForGit = (generator, extensionConfig) => {
99
+ export function askForGit(generator, extensionConfig) {
98
100
  let gitInit = generator.options['gitInit'];
99
101
  if (typeof gitInit === 'boolean') {
100
102
  extensionConfig.gitInit = Boolean(gitInit);
@@ -116,10 +118,10 @@ exports.askForGit = (generator, extensionConfig) => {
116
118
  }
117
119
 
118
120
  /**
119
- * @param {import('yeoman-generator')} generator
121
+ * @param {Generator} generator
120
122
  * @param {Object} extensionConfig
121
123
  */
122
- exports.askForPackageManager = (generator, extensionConfig) => {
124
+ export function askForPackageManager(generator, extensionConfig) {
123
125
  let pkgManager = generator.options['pkgManager'];
124
126
  if (pkgManager === 'npm' || pkgManager === 'yarn' || pkgManager === 'pnpm') {
125
127
  extensionConfig.pkgManager = pkgManager;
@@ -156,10 +158,10 @@ exports.askForPackageManager = (generator, extensionConfig) => {
156
158
  }
157
159
 
158
160
  /**
159
- * @param {import('yeoman-generator')} generator
161
+ * @param {Generator} generator
160
162
  * @param {Object} extensionConfig
161
163
  */
162
- exports.askForWebpack = (generator, extensionConfig) => {
164
+ export function askForWebpack(generator, extensionConfig) {
163
165
  let webpack = generator.options['webpack'];
164
166
  if (typeof webpack === 'boolean') {
165
167
  extensionConfig.webpack = Boolean(webpack);
@@ -0,0 +1,5 @@
1
+ import { defineConfig } from '@vscode/test-cli';
2
+
3
+ export default defineConfig({
4
+ files: 'test/**/*.test.js',
5
+ });
@@ -7,3 +7,4 @@ vsc-extension-quickstart.md
7
7
  **/jsconfig.json
8
8
  **/*.map
9
9
  **/.eslintrc.json
10
+ **/.vscode-test.*
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "module": "commonjs",
4
- "target": "ES2020",
3
+ "module": "Node16",
4
+ "target": "ES2022",
5
5
  "checkJs": <%- JSON.stringify(checkJavaScript) %>, /* Typecheck .js files. */
6
6
  "lib": [
7
- "ES2020"
7
+ "ES2022"
8
8
  ]
9
9
  },
10
10
  "exclude": [
@@ -20,16 +20,15 @@
20
20
  "scripts": {
21
21
  "lint": "eslint .",
22
22
  "pretest": "<%= pkgManager %> run lint",
23
- "test": "node ./test/runTest.js"
23
+ "test": "vscode-test"
24
24
  },
25
25
  "devDependencies": {
26
26
  <%- dep("@types/vscode") %>,
27
27
  <%- dep("@types/mocha") %>,
28
28
  <%- dep("@types/node") %>,
29
29
  <%- dep("eslint") %>,
30
- <%- dep("glob") %>,
31
- <%- dep("mocha") %>,
32
30
  <%- dep("typescript") %>,
31
+ <%- dep("@vscode/test-cli") %>,
33
32
  <%- dep("@vscode/test-electron") %>
34
33
  }
35
34
  }
@@ -27,11 +27,11 @@
27
27
 
28
28
  ## Run tests
29
29
 
30
- * Open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Extension Tests`.
31
- * Press `F5` to run the tests in a new window with your extension loaded.
32
- * See the output of the test result in the debug console.
33
- * Make changes to `src/test/suite/extension.test.js` or create new test files inside the `test/suite` folder.
34
- * The provided test runner will only consider files matching the name pattern `**.test.ts`.
30
+ * Install the [Extension Test Runner](https://marketplace.visualstudio.com/items?itemName=ms-vscode.extension-test-runner)
31
+ * Open the Testing view from the activity bar and click the Run Test" button, or use the hotkey `Ctrl/Cmd + ; A`
32
+ * See the output of the test result in the Test Results view.
33
+ * Make changes to `test/extension.test.js` or create new test files inside the `test` folder.
34
+ * The provided test runner will only consider files matching the name pattern `**.test.js`.
35
35
  * You can create folders inside the `test` folder to structure your tests any way you want.
36
36
 
37
37
  ## Go further
@@ -2,6 +2,7 @@
2
2
  // See https://go.microsoft.com/fwlink/?LinkId=733558
3
3
  // for the documentation about the extensions.json format
4
4
  "recommendations": [
5
- "dbaeumer.vscode-eslint"
5
+ "dbaeumer.vscode-eslint",
6
+ "ms-vscode.extension-test-runner"
6
7
  ]
7
- }
8
+ }
@@ -12,15 +12,6 @@
12
12
  "args": [
13
13
  "--extensionDevelopmentPath=${workspaceFolder}"
14
14
  ]
15
- },
16
- {
17
- "name": "Extension Tests",
18
- "type": "extensionHost",
19
- "request": "launch",
20
- "args": [
21
- "--extensionDevelopmentPath=${workspaceFolder}",
22
- "--extensionTestsPath=${workspaceFolder}/test/suite/index"
23
- ]
24
15
  }
25
16
  ]
26
17
  }
@@ -9,7 +9,13 @@
9
9
  "@typescript-eslint"
10
10
  ],
11
11
  "rules": {
12
- "@typescript-eslint/naming-convention": "warn",
12
+ "@typescript-eslint/naming-convention": [
13
+ "warn",
14
+ {
15
+ "selector": "import",
16
+ "format": [ "camelCase", "PascalCase" ]
17
+ }
18
+ ],
13
19
  "@typescript-eslint/semi": "warn",
14
20
  "curly": "warn",
15
21
  "eqeqeq": "warn",
@@ -21,4 +27,4 @@
21
27
  "dist",
22
28
  "**/*.d.ts"
23
29
  ]
24
- }
30
+ }
@@ -0,0 +1,5 @@
1
+ import { defineConfig } from '@vscode/test-cli';
2
+
3
+ export default defineConfig({
4
+ files: 'out/test/**/*.test.js',
5
+ });
@@ -8,3 +8,4 @@ vsc-extension-quickstart.md
8
8
  **/.eslintrc.json
9
9
  **/*.map
10
10
  **/*.ts
11
+ **/.vscode-test.*
@@ -26,7 +26,7 @@
26
26
  "watch": "tsc -watch -p ./",
27
27
  "pretest": "<%= pkgManager %> run compile && <%= pkgManager %> run lint",
28
28
  "lint": "eslint src --ext ts",
29
- "test": "node ./out/test/runTest.js"<% if (insiders) { %>,
29
+ "test": "vscode-test"<% if (insiders) { %>,
30
30
  "update-proposed-api": "vscode-dts dev"<% } %>
31
31
  },
32
32
  "devDependencies": {
@@ -36,9 +36,8 @@
36
36
  <%- dep("@typescript-eslint/eslint-plugin") %>,
37
37
  <%- dep("@typescript-eslint/parser") %>,
38
38
  <%- dep("eslint") %>,
39
- <%- dep("glob") %>,
40
- <%- dep("mocha") %>,
41
39
  <%- dep("typescript") %>,
40
+ <%- dep("@vscode/test-cli") %>,
42
41
  <%- dep("@vscode/test-electron") %><% if (insiders) { %>,
43
42
  <%- dep("vscode-dts") %><% } %>
44
43
  }
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "module": "commonjs",
4
- "target": "ES2020",
3
+ "module": "Node16",
4
+ "target": "ES2022",
5
5
  "outDir": "out",
6
6
  "lib": [
7
- "ES2020"
7
+ "ES2022"
8
8
  ],
9
9
  "sourceMap": true,
10
10
  "rootDir": "src",
@@ -27,10 +27,11 @@
27
27
 
28
28
  ## Run tests
29
29
 
30
- * Open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Extension Tests`.
31
- * Press `F5` to run the tests in a new window with your extension loaded.
32
- * See the output of the test result in the debug console.
33
- * Make changes to `src/test/suite/extension.test.ts` or create new test files inside the `test/suite` folder.
30
+ * Install the [Extension Test Runner](https://marketplace.visualstudio.com/items?itemName=ms-vscode.extension-test-runner)
31
+ * Run the "watch" task via the **Tasks: Run Task** command. Make sure this is running, or tests might not be discovered.
32
+ * Open the Testing view from the activity bar and click the Run Test" button, or use the hotkey `Ctrl/Cmd + ; A`
33
+ * See the output of the test result in the Test Results view.
34
+ * Make changes to `src/test/extension.test.ts` or create new test files inside the `test` folder.
34
35
  * The provided test runner will only consider files matching the name pattern `**.test.ts`.
35
36
  * You can create folders inside the `test` folder to structure your tests any way you want.
36
37
 
@@ -2,6 +2,7 @@
2
2
  // See http://go.microsoft.com/fwlink/?LinkId=827846
3
3
  // for the documentation about the extensions.json format
4
4
  "recommendations": [
5
- "dbaeumer.vscode-eslint"
5
+ "dbaeumer.vscode-eslint",
6
+ "ms-vscode.extension-test-runner"
6
7
  ]
7
8
  }
@@ -16,19 +16,6 @@
16
16
  "${workspaceFolder}/out/**/*.js"
17
17
  ],
18
18
  "preLaunchTask": "${defaultBuildTask}"
19
- },
20
- {
21
- "name": "Extension Tests",
22
- "type": "extensionHost",
23
- "request": "launch",
24
- "args": [
25
- "--extensionDevelopmentPath=${workspaceFolder}",
26
- "--extensionTestsPath=${workspaceFolder}/out/test/suite/index"
27
- ],
28
- "outFiles": [
29
- "${workspaceFolder}/out/test/**/*.js"
30
- ],
31
- "preLaunchTask": "${defaultBuildTask}"
32
19
  }
33
20
  ]
34
21
  }
@@ -11,3 +11,4 @@ vsc-extension-quickstart.md
11
11
  **/.eslintrc.json
12
12
  **/*.map
13
13
  **/*.ts
14
+ **/.vscode-test.*
@@ -29,7 +29,7 @@
29
29
  "watch-tests": "tsc -p . -w --outDir out",
30
30
  "pretest": "<%= pkgManager %> run compile-tests && <%= pkgManager %> run compile && <%= pkgManager %> run lint",
31
31
  "lint": "eslint src --ext ts",
32
- "test": "node ./out/test/runTest.js"<% if (insiders) { %>,
32
+ "test": "vscode-test"<% if (insiders) { %>,
33
33
  "update-proposed-api": "vscode-dts dev"<% } %>
34
34
  },
35
35
  "devDependencies": {
@@ -39,12 +39,11 @@
39
39
  <%- dep("@typescript-eslint/eslint-plugin") %>,
40
40
  <%- dep("@typescript-eslint/parser") %>,
41
41
  <%- dep("eslint") %>,
42
- <%- dep("glob") %>,
43
- <%- dep("mocha") %>,
44
42
  <%- dep("typescript") %>,
45
43
  <%- dep("ts-loader") %>,
46
44
  <%- dep("webpack") %>,
47
45
  <%- dep("webpack-cli") %>,
46
+ <%- dep("@vscode/test-cli") %>,
48
47
  <%- dep("@vscode/test-electron") %><% if (insiders) { %>,
49
48
  <%- dep("vscode-dts") %><% } %>
50
49
  }
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "module": "commonjs",
4
- "target": "ES2020",
3
+ "module": "Node16",
4
+ "target": "ES2022",
5
5
  "lib": [
6
- "ES2020"
6
+ "ES2022"
7
7
  ],
8
8
  "sourceMap": true,
9
9
  "rootDir": "src",
@@ -11,7 +11,7 @@
11
11
 
12
12
  ## Setup
13
13
 
14
- * install the recommended extensions (amodio.tsl-problem-matcher and dbaeumer.vscode-eslint)
14
+ * install the recommended extensions (amodio.tsl-problem-matcher, ms-vscode.extension-test-runner, and dbaeumer.vscode-eslint)
15
15
 
16
16
 
17
17
  ## Get up and running straight away
@@ -33,10 +33,11 @@
33
33
 
34
34
  ## Run tests
35
35
 
36
- * Open the debug viewlet (`Ctrl+Shift+D` or `Cmd+Shift+D` on Mac) and from the launch configuration dropdown pick `Extension Tests`.
37
- * Press `F5` to run the tests in a new window with your extension loaded.
38
- * See the output of the test result in the debug console.
39
- * Make changes to `src/test/suite/extension.test.ts` or create new test files inside the `test/suite` folder.
36
+ * Install the [Extension Test Runner](https://marketplace.visualstudio.com/items?itemName=ms-vscode.extension-test-runner)
37
+ * Run the "watch" task via the **Tasks: Run Task** command. Make sure this is running, or tests might not be discovered.
38
+ * Open the Testing view from the activity bar and click the Run Test" button, or use the hotkey `Ctrl/Cmd + ; A`
39
+ * See the output of the test result in the Test Results view.
40
+ * Make changes to `src/test/extension.test.ts` or create new test files inside the `test` folder.
40
41
  * The provided test runner will only consider files matching the name pattern `**.test.ts`.
41
42
  * You can create folders inside the `test` folder to structure your tests any way you want.
42
43
 
@@ -1,5 +1,5 @@
1
1
  {
2
2
  // See http://go.microsoft.com/fwlink/?LinkId=827846
3
3
  // for the documentation about the extensions.json format
4
- "recommendations": ["dbaeumer.vscode-eslint", "amodio.tsl-problem-matcher"]
4
+ "recommendations": ["dbaeumer.vscode-eslint", "amodio.tsl-problem-matcher", "ms-vscode.extension-test-runner"]
5
5
  }
@@ -16,20 +16,6 @@
16
16
  "${workspaceFolder}/dist/**/*.js"
17
17
  ],
18
18
  "preLaunchTask": "${defaultBuildTask}"
19
- },
20
- {
21
- "name": "Extension Tests",
22
- "type": "extensionHost",
23
- "request": "launch",
24
- "args": [
25
- "--extensionDevelopmentPath=${workspaceFolder}",
26
- "--extensionTestsPath=${workspaceFolder}/out/test/suite/index"
27
- ],
28
- "outFiles": [
29
- "${workspaceFolder}/out/**/*.js",
30
- "${workspaceFolder}/dist/**/*.js"
31
- ],
32
- "preLaunchTask": "tasks: watch-tests"
33
19
  }
34
20
  ]
35
21
  }
@@ -11,3 +11,4 @@ webpack.config.js
11
11
  **/.eslintrc.json
12
12
  **/*.map
13
13
  **/*.ts
14
+ **/.vscode-test.*
@@ -32,6 +32,7 @@
32
32
  "devDependencies": {
33
33
  <%- dep("@types/vscode") %>,
34
34
  <%- dep("@types/mocha") %>,
35
+ <%- dep("@types/assert") %>,
35
36
  <%- dep("eslint") %>,
36
37
  <%- dep("@typescript-eslint/eslint-plugin") %>,
37
38
  <%- dep("@typescript-eslint/parser") %>,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "module": "commonjs",
3
+ "module": "Node16",
4
4
  "target": "ES2020",
5
5
  "outDir": "dist",
6
6
  "lib": [
@@ -9,7 +9,7 @@
9
9
 
10
10
  ## Setup
11
11
 
12
- * install the recommended extensions (amodio.tsl-problem-matcher and dbaeumer.vscode-eslint)
12
+ * install the recommended extensions (amodio.tsl-problem-matcher, ms-vscode.extension-test-runner, and dbaeumer.vscode-eslint)
13
13
 
14
14
  ## Get up and running the Web Extension
15
15
 
@@ -0,0 +1,5 @@
1
+ import { defineConfig } from '@vscode/test-cli';
2
+
3
+ export default defineConfig({
4
+ files: 'out/test/**/*.test.js',
5
+ });
@@ -10,3 +10,4 @@ vsc-extension-quickstart.md
10
10
  **/*.map
11
11
  **/*.ts
12
12
  **/*.tsbuildinfo
13
+ **/.vscode-test.*
@@ -31,7 +31,7 @@
31
31
  "lint": "eslint src --ext ts",
32
32
  "watch": "webpack --mode development --watch",
33
33
  "pretest": "webpack --mode development && <%= pkgManager %> run lint",
34
- "test": "node ./out/test/runTest.js"
34
+ "test": "vscode-test"
35
35
  },
36
36
  "devDependencies": {
37
37
  <%- dep("@types/mocha") %>,
@@ -50,6 +50,7 @@
50
50
  <%- dep("ts-loader") %>,
51
51
  <%- dep("typescript") %>,
52
52
  <%- dep("vscode-notebook-error-overlay") %>,
53
+ <%- dep("@vscode/test-cli") %>,
53
54
  <%- dep("@vscode/test-electron") %>,
54
55
  <%- dep("util") %>,
55
56
  <%- dep("webpack") %>,
@@ -1,12 +1,11 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "module": "commonjs",
4
- "target": "ES2019",
3
+ "module": "Node16",
4
+ "target": "ES2022",
5
5
  "lib": [
6
- "ES2019"
6
+ "ES2022"
7
7
  ],
8
8
  "types": ["node"],
9
- "moduleResolution": "node",
10
9
  "sourceMap": true,
11
10
  "strict": true /* enable all strict type-checking options */
12
11
  /* Additional Checks */
@@ -1,5 +1,5 @@
1
1
  {
2
2
  // See http://go.microsoft.com/fwlink/?LinkId=827846
3
3
  // for the documentation about the extensions.json format
4
- "recommendations": ["dbaeumer.vscode-eslint", "amodio.tsl-problem-matcher"]
4
+ "recommendations": ["dbaeumer.vscode-eslint", "amodio.tsl-problem-matcher", "ms-vscode.extension-test-runner"]
5
5
  }
@@ -32,19 +32,6 @@
32
32
  ],
33
33
  "debugWebviews": true,
34
34
  "preLaunchTask": "npm: watch"
35
- },
36
- {
37
- "name": "Extension Tests",
38
- "type": "extensionHost",
39
- "request": "launch",
40
- "args": [
41
- "--extensionDevelopmentPath=${workspaceFolder}",
42
- "--extensionTestsPath=${workspaceFolder}/out/test/suite/index"
43
- ],
44
- "outFiles": [
45
- "${workspaceFolder}/out/test/**/*.js"
46
- ],
47
- "preLaunchTask": "${defaultBuildTask}"
48
35
  }
49
36
  ]
50
37
  }