在插件开发上,有Chorme浏览器插件,有开发工具插件. 在开发工具插件中,有visual studio,jetbrains以及vscode,其中vscode插件开发也是非常流行.这里简单入门介绍一下.
安装脚手架
1 | npx --package yo --package generator-code -- yo code |
yeoman是创建应用的脚手架,generator-code是vscode项目生成器. 有了这两者开发vscode插件就非常方便了.
重要文件
package.json
Extension Manifest | Visual Studio Code Extension API1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33{
"name": "mini-news",
"displayName": "mini-news",
"description": "",
"version": "0.0.1",
"engines": {
"vscode": "^1.96.0"
},
"categories": [
"Other"
],
"activationEvents": [],
"main": "./extension.js",
"contributes": {
"commands": [{
"command": "mini-news.hihi",
"title": "mini-news:info"
}]
},
"scripts": {
"lint": "eslint .",
"pretest": "npm run lint",
"test": "vscode-test"
},
"devDependencies": {
"@types/vscode": "^1.96.0",
"@types/mocha": "^10.0.10",
"@types/node": "20.x",
"eslint": "^9.16.0",
"@vscode/test-cli": "^0.0.10",
"@vscode/test-electron": "^2.4.1"
}
}
关于插件的配置,重要的属性比如name
,displayname
,publisher
等,目前版本(>1.74.0)activationEvents
不需要额外配置,此外还有contributions
用于配置扩展功能Contribution Points | Visual Studio Code Extension API
contribution包括commands,menus,configuration,keybinds等等
extension.js
扩展入口文件,暴露activate
和deactivate
.activate
在您注册的激活事件发生时执行。 deactivate
在您的扩展被停用之前给您一个清理的机会。对于许多扩展,可能不需要显式清理,并且可以删除 deactivate
方法。然而,如果扩展需要在 VS Code 关闭或扩展被禁用或卸载时执行操作使用deactivate
.
通过context.subscriptions.push
添加功能,通过vscode.xx.registerxx注册功能并在contribution中指定.
小案例
1 | import * as vscode from 'vscode'; |
1 | { |