编辑器的应用程序名称,例如 'VS Code'。
编辑器运行的应用程序根目录。
注意 当运行在没有应用程序根目录的环境中时,值为空字符串。
编辑器在操作系统中注册的自定义 URI 方案。
表示用户首选的语言,例如 de-CH
、fr
或 en-US
。
系统剪贴板。
用于标识计算机的唯一标识符。
用于标识当前会话的唯一标识符。
每次启动编辑器时都会更改。
表示这是应用程序的首次安装。
如果在安装的第一天内为 true
,否则为 false
。
表示用户是否启用了遥测。
可以观察以确定扩展是否应发送遥测。
远程的名称。由扩展定义,常见的示例是 wsl
用于 Windows 子系统 Linux 或 ssh-remote
用于使用安全 shell 的远程。
注意 当没有远程扩展主机时,值为 undefined
,但是当存在远程扩展主机时,值在所有扩展主机(本地和远程)中都已定义。
使用 Extension.extensionKind 来确定特定扩展是否在远程运行。
检测到的扩展主机的默认 shell,该值由扩展主机平台的 terminal.integrated.shell
设置覆盖。
请注意,在不支持 shell 的环境中,值为空字符串。
UI kind 属性表示从哪个 UI 访问扩展。例如,扩展可以从桌面应用程序或 Web 浏览器访问。
当用户启用或禁用遥测时触发的 Event。
如果用户启用了遥测,则为 true
;如果用户禁用了遥测,则为 false
。
使用默认应用程序在外部打开链接。根据使用的方案,可以是:
http:
、https:
)mailto:
)vscode:
来自 vscode.env.uriScheme
)注意 showTextDocument
是在编辑器内打开文本文档的正确方法,而不是此函数。
应该打开的 uri。
一个指示是否打开成功的 promise。
将 uri 解析为外部可访问的形式。
http:
或 https:
方案解析扩展正在运行的 external uri,例如 http:
或 https:
链接,从扩展运行的客户端机器上的同一资源的 uri。
如果扩展在客户端机器上运行,则此操作无效。
如果扩展在远程运行,则此函数会自动从本地机器到远程上的 target
建立端口转发隧道,并返回到隧道的本地 uri。端口转发隧道的生命周期由编辑器管理,用户可以关闭隧道。
注意 通过 openExternal
传递的 uris 会自动解析,您不应该对它们调用 asExternalUri
。
vscode.env.uriScheme
创建一个 uri,如果在浏览器中打开(例如,通过 openExternal
),则会导致注册的 UriHandler 触发。
扩展不应对结果 uri 进行任何假设,并且不应以任何方式更改它。相反,扩展可以使用此 uri 在身份验证流程中,例如将 uri 作为回调查询参数添加到要身份验证的服务器。
注意 如果服务器决定将其他查询参数添加到 uri(例如,令牌或秘密),则它将出现在传递给 UriHandler 的 uri 中。
示例 身份验证流程:
vscode.window.registerUriHandler({
handleUri(uri: vscode.Uri): vscode.ProviderResult<void> {
if (uri.path === '/did-authenticate') {
console.log(uri.toString());
}
}
});
const callableUri = await vscode.env.asExternalUri(vscode.Uri.parse(`${vscode.env.uriScheme}://my.extension/did-authenticate`));
await vscode.env.openExternal(callableUri);
注意 扩展不应缓存 asExternalUri
的结果,因为解析的 uri 可能会因为系统或用户操作而变得无效 — 例如,在远程情况下,用户可能会关闭由 asExternalUri
打开的端口转发隧道。
其他任何方案都将被处理为提供的 URI 是工作区 URI。在这种情况下,该方法将返回一个 URI,当处理时,将使编辑器打开工作区。
可在客户端机器上使用的 uri。
友链:VS Code 中文文档 | VS Code 官网文档 | VS Code 扩展市场
描述编辑器运行环境的命名空间。
@youngjuning