常见功能
通用功能是您的扩展的重要组成部分。几乎所有的扩展都使用其中的一些功能。以下是您可以利用它们的方法。
命令
命令是VS Code工作方式的核心。您打开命令面板来执行命令,将自定义键绑定绑定到命令,并在上下文菜单中右键单击以调用命令。
一个扩展可以:
- 注册并执行命令
vscode.commands应用程序编程接口。 - 在命令面板中提供命令
贡献命令贡献点。
了解更多关于命令的信息,请访问扩展指南 / Commands主题。
配置
扩展可以贡献扩展特定的设置贡献配置贡献点并使用它们工作区.获取配置应用程序编程接口。
按键绑定
扩展可以添加自定义的键绑定。阅读更多内容请访问贡献键绑定 和 键绑定 主题。
上下文菜单
扩展可以注册自定义上下文菜单项,这些项将在 VS Code 用户界面的不同部分在右键单击时显示。 了解更多:贡献.menus贡献点。
数据存储
有五种选项用于存储数据:
扩展上下文.工作区状态: 一个可以写入键/值对的工作区存储。VS Code 管理存储,并会在再次打开相同工作区时进行恢复。扩展上下文的全局状态: 全局存储,您可以在此处写入键/值对。VS Code 管理存储,并会在每次扩展激活时恢复它。您可以通过设置用于同步的键来选择性地同步全局存储中的键/值对。设置同步密钥方法在全局状态输入:.扩展上下文存储路径: 一个指向本地目录的特定工作区存储URI,您的扩展在此目录中有读/写访问权限。如果您需要存储只能从当前工作区访问的大文件,这是一个不错的选择。扩展上下文.全局存储路径: 一个全局存储URI,指向一个本地目录,您的扩展在此目录中有读/写访问权限。如果您需要存储可以从所有工作区访问的大文件,这是一个不错的选择。扩展上下文.秘密:一个用于存储秘密(或任何敏感信息)的全局存储,这些信息将会被加密。这些信息不会在机器之间同步。对于VS Code桌面版,这利用了Electron的安全存储API。对于VS Code网络版,这使用了双密钥加密(DKE)实现。
扩展上下文对以下内容可用激活 函数在 扩展入口文件。
设置同步密钥示例
如果您的扩展需要在不同机器之间保存一些用户状态,请将状态提供给设置同步 使用vscode.ExtensionContext.globalState.setKeysForSync输入:.
您可以使用以下模式:
// on activate
const versionKey = 'shown.version';
context.globalState.setKeysForSync([versionKey]);
// later on show page
const currentVersion = context.extension.packageJSON.version;
const lastVersionShown = context.globalState.get(versionKey);
if (isHigher(currentVersion, lastVersionShown)) {
context.globalState.update(versionKey, currentVersion);
}
在机器之间共享状态可以通过共享已关闭或已查看的标志,来避免用户看到多个欢迎或更新页面的实例问题。
显示通知
几乎所有的扩展都需要在某个时刻向用户展示信息。VS Code 提供了三个用于显示不同严重程度通知消息的 API:
快速选择
随着vscode.快速选择 API,您可以轻松地收集用户输入或让用户从多个选项中进行选择。 QuickInput 示例 说明了该 API。
文件选择器
扩展程序可以使用Windows显示打开对话框API 打开系统文件选择器并选择文件或文件夹。
输出频道
输出面板显示了一系列输出通道,非常适合用于记录目的。您可以轻松利用它与Windows创建输出通道应用程序编程接口。
进度 API
你可以使用vscode.进度用于向用户报告进度更新的API。
进展可以在不同的位置显示使用进度位置选项:
- 在通知区域
- 在源代码控制视图中
- VS Code Windows中的总体进展
这个进展样本说明了这个API。