git - VS Code Git 扩展 API
问题描述
有没有地方可以获得更多关于如何创建使用 Git 扩展 API 的扩展的文档?
在https://github.com/microsoft/vscode/blob/master/extensions/git/README.md,微软提供的唯一文档是:
Visual Studio Code 的 Git 集成
注意:此扩展与 Visual Studio Code 捆绑在一起。它可以禁用但不能卸载。
特征
请参阅VS Code 中的 Git 支持以了解此扩展的功能。
API
Git 扩展公开了一个 API,任何其他扩展都可以访问。
- 复制
src/api/git.d.ts
到您的扩展程序的来源; - 包含
git.d.ts
在扩展的编译中。 使用以下代码段获取 API:
const gitExtension = vscode.extensions.getExtension<GitExtension>('vscode.git').exports; const git = gitExtension.getAPI(1);
它真的没有帮助,当我尝试使用这 2 行时,扩展运行,但如果我尝试检查,例如, git.repositories[0] 它返回未定义。如果我做错了什么?:(
解决方案
你可以看一下eamodio/vscode-gitlens
,基于 Git 扩展的主扩展。
它src/git/gitService.ts
确实调用了 GIt 扩展:
static async getBuiltInGitApi(): Promise<BuiltInGitApi | undefined> {
try {
const extension = extensions.getExtension('vscode.git') as Extension<GitExtension>;
if (extension !== undefined) {
const gitExtension = extension.isActive ? extension.exports : await extension.activate();
return gitExtension.getAPI(1);
}
} catch {}
return undefined;
}
推荐阅读
- javascript - JSX 上下文何时开始?
- angular - NRWL NX 导入库错误 TS2307:找不到模块“@eduboard/interfaces”
- kubernetes - 如何在 gitlab ci 中修复 k8s 命名空间权限
- javascript - 我将如何通过网络应用程序编译代码?
- java - 对固定长度的字符串进行排序
- sas - 如何在 SAS DI Studio 中创建新的转换类别?
- laravel - 安装 Namecheap 的 PositiveSSL 后禁止 403
- c++ - 如何扩展 integer_sequence?
- rust - 为 JSON 实现 serde::Deserialize 时无法在 fn 项中捕获动态环境
- .htaccess - htaccess 中 301 重定向的通配符 RewriteRule