在某处可以获取更多有关如何使用Git Extension API创建扩展的文档吗?
在https://github.com/microsoft/vscode/blob/master/extensions/git/README.md,Microsoft提供的唯一文档是:
注意::此扩展程序与Visual Studio Code捆绑在一起。可以禁用它,但不能将其卸载。
请参阅Git support in VS Code,以了解此扩展程序的功能。
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);
它真的没有帮助,当我尝试使用这两行时,扩展会运行,但是如果我尝试检查,例如git.repositories [0],它将返回未定义。如果我做错了事,Idk? :(
答案 0 :(得分:1)
对于现有答案,以及那些不是使用TypeScript而是使用原始JavaScript进行编码的人,
调用gitExtension.getAPI(1)
将为您提供API
的实例,该实例仅对其.repositories
成员有用。该成员是Repository
个实例的数组,每个工作区存储库一个。在这种情况下,您可以执行所有git操作。
但是,我必须承认,由于大多数函数都接受字符串,因此该API的文档仍然很少,并且如果您不熟悉git语言,也不总是很清楚它们应该是什么。我最终使用了simple-git
节点模块。它具有适当的文档,可在不浪费太多时间的情况下更快地实现所需的功能。
答案 1 :(得分: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;
}