Appearance
激活事件
激活事件激活事件用于激活插件的VS Code事件钩子。是package.json中activationEvents字段声明的一个JSON对象, 参考插件清单. 当激活事件激活事件用于激活插件的VS Code事件钩子。触发时, 插件就会被激活. 下面是可用的激活事件激活事件用于激活插件的VS Code事件钩子。列表:
package.json的配置项都可以在插件清单中找到.
onLanguage
打开特定语言文件时激活事件激活事件用于激活插件的VS Code事件钩子。和相关插件
json
...
"activationEvents": [
"onLanguage:python"
]
...onLanguage事件需要指定特定的语言标识符
也可以添加多种语言:
json
"activationEvents": [
"onLanguage:json",
"onLanguage:markdown",
"onLanguage:typescript"
]onCommand
调用命令时激活
json
...
"activationEvents": [
"onCommand:extension.sayHello"
]
...onDebug
调试会话(debug session)启动前激活
json
...
"activationEvents": [
"onDebug"
]
...onDebugInitialConfigurations
onDebugResolve
这是两个粒度更细的onDebug激活事件激活事件用于激活插件的VS Code事件钩子。:
DebugConfigurationProvider中的provideDebugConfigurations在onDebugInitialConfigurations之后触发onDebugResolve:type在DebugConfigurationProvider的resolveDebugConfiguration方法之前触发.
友情提示: 如果调试插件比较轻量, 使用onDebug. 相反, 根据DebugConfigurationProvider实现的对应方法(provideDebugConfigurations或resolveDebugConfiguration),使用onDebugInitialConfigurations或onDebugResolve. 参阅使用调试器插件.
workspaceContains
文件夹打开后,且文件夹中至少包含一个符合glob模式的文件时触发.
json
"activationEvents": [
"workspaceContains:**/.editorconfig"
]onFileSystem
以协议(scheme)打开文件或文件夹时触发. 通常是file-协议,也可以用自定义的文件供应器供应器也叫提供者,一种微软主导的设计模式,类似于策略模式。主要用于服务的提供和注入,在 VS Code 插件开发中主要用于注册功能函数。函数替换掉,比如ftp、ssh.
json
...
"activationEvents": [
"onFileSystem:sftp"
]
...onView
指定id的视图展开时触发:
json
...
"activationEvents": [
"onView:nodeDependencies"
]
...onUri
插件的系统级URI打开时触发. 这个URI协议需要带上vscode或者 vscode-insiders协议. URI主机名必须是插件的唯一标识,剩余的URI是可选的.
json
...
"activationEvents": [
"onUri"
]
...如果vscode.git插件定义了onUri激活事件激活事件用于激活插件的VS Code事件钩子。,那么下列任意URI打开时就会触发:
vscode://vscode.git/initvscode://vscode.git/clone?url=https%3A%2F%2Fgithub.com%2FMicrosoft%2Fvscode-vsce.gitvscode-insiders://vscode.git/init(for VS Code Insiders)
onWebviewPanel
当相应viewType的webview恢复时触发.
下面是一个例子:
json
"activationEvents": [
...,
"onWebviewPanel:catCoding"
]VS Code 恢复 (restore) viewType 为 catCoding 的 webview 时会激活插件. 调用 window.createWebviewPanel 可以设置 viewType, 你可能会需要其它的激活事件激活事件用于激活插件的VS Code事件钩子。(比如: onCommand)初始化你的插件,然后再创建webview视图.
onCustomEditor
当相应 viewType 的 自定义编辑器 被创建时触发.
下面是一个例子:
json
"activationEvents": [
"onCustomEditor:catCustoms.pawDraw"
]VS Code 恢复 (restore) viewType 为 catCustoms.pawDraw 的自定义编辑器时会激活插件. 首先通过 自定义编辑器 的配置点 设置 viewType ,然后为 registerCustomEditorProvider 提供一个 供应器供应器也叫提供者,一种微软主导的设计模式,类似于策略模式。主要用于服务的提供和注入,在 VS Code 插件开发中主要用于注册功能函数。函数.
WARNING
注意: 从VS Code 1.74.0开始,包含自定义编辑器的插件,不再需要单独配置 onCustomEditor 事件来激活.
onAuthenticationRequest
当插件通过 authentication.getSession() API和相应的 providerId 请求认证会话时会激活插件.
下面是一个例子:
json
"activationEvents": [
"onAuthenticationRequest:github"
]当 VS Code 需要获取类型为 github 的 AuthenticationSession 将激活插件.
WARNING
注意: 从VS Code 1.74.0开始,包含认证程序的插件,不再需要单独配置 onAuthenticationRequest 事件来激活.
onStartupFinished
VS Code启动一段时间后才会激活插件. 它类似于 * 类激活事件激活事件用于激活插件的VS Code事件钩子。,但它不会减慢VS Code启动. 目前,该事件在所有 * 类插件激活完成后触发.
json
...
"activationEvents": [
"onStartupFinished"
]
...Start up
当VS Code启动时触发. 为了保证良好的用户体验,只在你的插件没有其他任何激活事件激活事件用于激活插件的VS Code事件钩子。的前提下,添加这个激活事件激活事件用于激活插件的VS Code事件钩子。.
json
...
"activationEvents": [
"*"
]
...WARNING
注意: 一个插件如果侦听了多个激活事件激活事件用于激活插件的VS Code事件钩子。, 那么最好用"*"替换掉.
WARNING
注意: 插件必须从它的主模块中输出一个activate()函数,当任意的激活事件激活事件用于激活插件的VS Code事件钩子。触发时,VS Code会仅仅调用一次这个函数. 此外,插件也应该 导出一个deactivate()函数,当VS Code关闭时执行清理的任务. 如果清理进程是异步的,插件的deactivate()必须返回一个Promise. 如果这个清理任务是同步的,那么deactivate()可以返回undefined.