VS 代码 Git 扩展 API
VS Code Git Extension API
有没有什么地方可以获得更多关于如何创建使用 Git 扩展 API 的扩展的文档?
在 https://github.com/microsoft/vscode/blob/master/extensions/git/README.md Microsoft 提供的唯一文档是:
Git 集成 Visual Studio 代码
注意: 此扩展与 Visual Studio 代码捆绑在一起。可以禁用但不能卸载。
特点
请参阅 Git support in VS Code 了解此扩展程序的功能。
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],它 returns 未定义。 Idk如果我做错了什么? :(
你可以看看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;
}
为了进一步补充现有的答案,以及那些不使用 TypeScript 而使用原始代码的人 JavaScript:
调用 gitExtension.getAPI(1)
将为您提供 API
that is only useful for its .repositories
member. This member is an array of Repository
个实例,每个工作区存储库一个。在这种情况下,您可以执行所有 git 操作。
但是,我必须承认这个 API 的文档仍然很少,因为大多数函数都接受字符串,如果您不熟悉 git 语言,它们应该是什么并不总是很明显。我最终使用了 simple-git
节点模块。它有适当的文档,可以更快地实现您想要的功能,而不会在这里浪费太多时间。
有没有什么地方可以获得更多关于如何创建使用 Git 扩展 API 的扩展的文档?
在 https://github.com/microsoft/vscode/blob/master/extensions/git/README.md Microsoft 提供的唯一文档是:
Git 集成 Visual Studio 代码
注意: 此扩展与 Visual Studio 代码捆绑在一起。可以禁用但不能卸载。
特点
请参阅 Git support in VS Code 了解此扩展程序的功能。
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],它 returns 未定义。 Idk如果我做错了什么? :(
你可以看看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;
}
为了进一步补充现有的答案,以及那些不使用 TypeScript 而使用原始代码的人 JavaScript:
调用 gitExtension.getAPI(1)
将为您提供 API
that is only useful for its .repositories
member. This member is an array of Repository
个实例,每个工作区存储库一个。在这种情况下,您可以执行所有 git 操作。
但是,我必须承认这个 API 的文档仍然很少,因为大多数函数都接受字符串,如果您不熟悉 git 语言,它们应该是什么并不总是很明显。我最终使用了 simple-git
节点模块。它有适当的文档,可以更快地实现您想要的功能,而不会在这里浪费太多时间。