{ "name": "hello-world", // 插件名 "displayName": "hello-world", "description": "hello world", // 插件描述 "version": "0.0.1", "engines": { "vscode": "^1.35.0" // 运行插件需要vscode最低版本 }, "categories": ["Other"], "activationEvents": ["onCommand:extension.helloWorld"], // 如何激活插件:在命令面板(Command+Shift+P吊起)输入helloWorld. 注意command名需要在contributes.commands中有配置 "main": "./extension.js", // 插件入口 "contributes": { "commands": [ // 此数组表示插件支持的所有命令 { "command": "extension.helloWorld", // 命令对应的Command,需要和代码里保持一致 "title": "Hello World" // 命令的显示名称 } ] }, "scripts": { // 正常的npm script "postinstall": "node ./node_modules/vscode/bin/install", "test": "node ./node_modules/vscode/bin/test" }, "devDependencies": { // 依赖包 "typescript": "^3.3.1", "vscode": "^1.1.28", "eslint": "^5.13.0", "@types/node": "^10.12.21", "@types/mocha": "^2.2.42" } } // vscode编辑器api入口 const vscode = require('vscode'); /** * 此生命周期方法在插件激活时执行 * @param {vscode.ExtensionContext} context */ function activate(context) { // console的各种方法都是输出在`调试控制台`tab下 console.log('Congratulations, your extension "hello-world" is now active!'); // registerCommand用于注册命令并提供具体逻辑,命令名需要和package.json里写的一致。 // 回调函数在命令被触发时执行。 let disposable = vscode.commands.registerCommand('extension.helloWorld', function() { // 在编辑器右下角展示一个message box vscode.window.showInformationMessage('Hello World!'); }); // 将registerCommand的返回值放入subscriptions可以自动执行内存回收逻辑。 context.subscriptions.push(disposable); } exports.activate = activate; // 当插件被设置为无效时执行此生命周期钩子 function deactivate() {} module.exports = { activate, deactivate, };