generator-code
Version:
Yeoman generator for Visual Studio Code extensions.
46 lines (42 loc) • 2.12 kB
JavaScript
/*---------------------------------------------------------
* Copyright (C) Microsoft Corporation. All rights reserved.
*--------------------------------------------------------*/
import Generator from 'yeoman-generator';
import * as prompts from './prompts.js';
/**
* @typedef { import('./index.js').ExtensionConfig} ExtensionConfig
*/
/**
* @type {import('./index.js').ExtensionGenerator}
*/
export default {
id: 'ext-keymap',
aliases: ['keymap'],
name: 'New Keymap',
/**
* @param {Generator} generator
* @param {ExtensionConfig} extensionConfig
*/
prompting: async (generator, extensionConfig) => {
await prompts.askForExtensionDisplayName(generator, extensionConfig);
await prompts.askForExtensionId(generator, extensionConfig);
await prompts.askForExtensionDescription(generator, extensionConfig);
await prompts.askForGit(generator, extensionConfig);
},
/**
* @param {Generator} generator
* @param {ExtensionConfig} extensionConfig
*/
writing: (generator, extensionConfig) => {
generator.fs.copy(generator.templatePath('vscode'), generator.destinationPath('.vscode'));
generator.fs.copyTpl(generator.templatePath('package.json'), generator.destinationPath('package.json'), extensionConfig);
generator.fs.copyTpl(generator.templatePath('vsc-extension-quickstart.md'), generator.destinationPath('vsc-extension-quickstart.md'), extensionConfig);
generator.fs.copyTpl(generator.templatePath('README.md'), generator.destinationPath('README.md'), extensionConfig);
generator.fs.copyTpl(generator.templatePath('CHANGELOG.md'), generator.destinationPath('CHANGELOG.md'), extensionConfig);
generator.fs.copy(generator.templatePath('.vscodeignore'), generator.destinationPath('.vscodeignore'));
if (extensionConfig.gitInit) {
generator.fs.copy(generator.templatePath('gitignore'), generator.destinationPath('.gitignore'));
generator.fs.copy(generator.templatePath('.gitattributes'), generator.destinationPath('.gitattributes'));
}
}
}