插件开发流程
初始化项目
全局安装vscode插件脚手架命令和代码生成器
sh
npm i -g yo generator-code
npm i -g yo generator-code
使用脚手架生成vscode插件项目
sh
yo code
yo code
运行
生成vscode插件项目后,按f5运行
package.json
vscode插件的一些配置需要在package.json进行设置
json
"name": "demo", // 插件名
"displayName": "vue3snippets", // 插件在vscode商店中显示的名字
"description": "for less input", // 插件描述
"publisher": "zhuzhuzhuzhuxia", // 插件发布者,有可能不是作者,而是公司和组织
"author": "zhuzhuzhuzhuxia", // 插件作者
// vscode商城使用的横幅
"galleryBanner": {
"color": "#ffe04b",
"theme": "light"
},
"version": "0.0.35", // 插件版本号
// 插件要求的vscode版本
"engines": {
vscode": "^1.60.0"
},
// 插件主页,一般都为github readme文档地址
"homepage": "https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode",
// 插件代码仓库
"repository": {
"type": "git",
"url": "https://github.com/prettier/prettier-vscode.git"
},
// 提交插件bug的地址
"bugs": {
"url": "https://github.com/prettier/prettier-vscode/issues"
},
// 使用的开源协议
"license": "MIT",
// 插件类别
"categories": [
"Other"
],
// 插件图标,本地文件路径,需要128*128
"icon": "images/icon.png",
// 插件激活事件
"activationEvents": [
"onCommand:translate.zn"
],
// 插件的入口主文件
"main": "./dist/extension.js",
// vscode插件机制
"contributes": {
// 注册插件命令
"commands": [
{
"command": "translate.zn",
"title": "translate cn to en"
}
],
// 快捷键设置以及什么时候触发
"keybindings": [
{
"command": "extension.insertColonOrSemiColon",
"key": "enter",
"when": "suggestWidgetVisible && textInputFocus && editorLangId =~ /javascript|typescript|javascriptreact|typescriptreact/ && config.editor.acceptSuggestionOnEnter != 'off'"
}
],
// 代码提示
// language表示在什么语言中生效
// path表示使用的提示文本json文件路径
"snippets": [
{
"language": "javascript",
"path": "./public/js.json"
},
{
"language": "typescript",
"path": "./public/js.json"
},
{
"language": "vue-html",
"path": "./public/vue-html.json"
},
{
"language": "css",
"path": "./public/css.json"
},
{
"language": "vue",
"path": "./public/vue.json"
}
],
// 鼠标右击菜单
"menus": {
"editor/context": [
{
"when": "editorFocus",
"command": "translate.zn",
"group": "navigation"
}
]
}
}
"name": "demo", // 插件名
"displayName": "vue3snippets", // 插件在vscode商店中显示的名字
"description": "for less input", // 插件描述
"publisher": "zhuzhuzhuzhuxia", // 插件发布者,有可能不是作者,而是公司和组织
"author": "zhuzhuzhuzhuxia", // 插件作者
// vscode商城使用的横幅
"galleryBanner": {
"color": "#ffe04b",
"theme": "light"
},
"version": "0.0.35", // 插件版本号
// 插件要求的vscode版本
"engines": {
vscode": "^1.60.0"
},
// 插件主页,一般都为github readme文档地址
"homepage": "https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode",
// 插件代码仓库
"repository": {
"type": "git",
"url": "https://github.com/prettier/prettier-vscode.git"
},
// 提交插件bug的地址
"bugs": {
"url": "https://github.com/prettier/prettier-vscode/issues"
},
// 使用的开源协议
"license": "MIT",
// 插件类别
"categories": [
"Other"
],
// 插件图标,本地文件路径,需要128*128
"icon": "images/icon.png",
// 插件激活事件
"activationEvents": [
"onCommand:translate.zn"
],
// 插件的入口主文件
"main": "./dist/extension.js",
// vscode插件机制
"contributes": {
// 注册插件命令
"commands": [
{
"command": "translate.zn",
"title": "translate cn to en"
}
],
// 快捷键设置以及什么时候触发
"keybindings": [
{
"command": "extension.insertColonOrSemiColon",
"key": "enter",
"when": "suggestWidgetVisible && textInputFocus && editorLangId =~ /javascript|typescript|javascriptreact|typescriptreact/ && config.editor.acceptSuggestionOnEnter != 'off'"
}
],
// 代码提示
// language表示在什么语言中生效
// path表示使用的提示文本json文件路径
"snippets": [
{
"language": "javascript",
"path": "./public/js.json"
},
{
"language": "typescript",
"path": "./public/js.json"
},
{
"language": "vue-html",
"path": "./public/vue-html.json"
},
{
"language": "css",
"path": "./public/css.json"
},
{
"language": "vue",
"path": "./public/vue.json"
}
],
// 鼠标右击菜单
"menus": {
"editor/context": [
{
"when": "editorFocus",
"command": "translate.zn",
"group": "navigation"
}
]
}
}
注册账户
步骤一,注册成为vscode插件的开发者,publisher,需要科学上网
https://marketplace.visualstudio.com/manage/createpublisher?managePageRedirect=true
步骤二,前往网站新建token(必须具备token才能登录开发者账户 ,提交vscode插件至vscode商店中)
- 注册微软账户并登录
- 登录后点击个人信息
- 创建新组织
- 点击人物头像
- 选择personal access token
- 必须选择所有组织all accessible organizations选项
- 选择custom define
- 选择最长日期(最长一年)
- 必须选择权限全开full access
- 生成token,记得保管,token忘记只能重新注册,无法找回
上传插件
上传插件至vscode插件市场流程:
1.安装上传插件的全局命令
sh
npm install -g vsce
npm install -g vsce
2.需要进行开发者账户登录
sh
vsce login 你的发布者账户名
vsce login 你的发布者账户名
3.输入token
4.上传插件
sh
# 每一次提交的版本号都要跟以前的版本号不同,可以手动修改package.json里的版本号
vsce publish
# 也可以使用自增版本号命令
vsce publish patch
# 每一次提交的版本号都要跟以前的版本号不同,可以手动修改package.json里的版本号
vsce publish
# 也可以使用自增版本号命令
vsce publish patch
插件本地使用
有时候想把插件发布到vscode插件市场前,先本地试用一下,或者根本不想发布,可以使用下方命令打包插件
sh
vsce package
vsce package
打包插件后会生成visx文件,vscode中右击该visx文件安装,即可在vscode中生效该插件
vscode插件文档-配置项
https://code.visualstudio.com/api/references/contribution-points#contributes.configuration