首页 > 解决方案 > 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,任何其他扩展都可以访问。

  1. 复制src/api/git.d.ts到您的扩展程序的来源;
  2. 包含git.d.ts在扩展的编译中。
  3. 使用以下代码段获取 API:

    const gitExtension = vscode.extensions.getExtension<GitExtension>('vscode.git').exports;
    const git = gitExtension.getAPI(1);
    

它真的没有帮助,当我尝试使用这 2 行时,扩展运行,但如果我尝试检查,例如, git.repositories[0] 它返回未定义。如果我做错了什么?:(

标签: gitgithubvisual-studio-codeapi-designvscode-extensions

解决方案


你可以看一下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;
}

推荐阅读