【问题标题】:How to get existing SourceControl via VSCode extension API?如何通过 VSCode 扩展 API 获取现有的 SourceControl?
【发布时间】:2019-06-14 06:32:46
【问题描述】:

VSCode 扩展 API 提供a means of creating a new SourceControl。有没有办法为WorkspaceFolder 要求现有的SourceControl?我希望能够从扩展中了解 scm 文件状态,而无需重新创建现有的版本控制插件;相反,我希望能够询问现有的插件。

【问题讨论】:

    标签: visual-studio-code version-control vscode-extensions


    【解决方案1】:

    很晚才回答,因为不久前我有同样的问题,我想我应该分享我的发现。

    当时,我正在尝试构建一个扩展来获取在编辑器中打开的当前文件的远程 URL,所以经过一些研究后我使用了默认的Git integration for VSCode,因为文档并没有让这很容易找到。

    这里有一些关于如何使用它来提取有关当前存储库的信息的 sn-p:

    const gitExtension = vscode.extensions.getExtension<GitExtension>('vscode.git').exports;
    const git = gitExtension.getAPI(1);
    
    const repository = git.getRepository('current-workspace-path');
    const { remotes, HEAD } = repository.state;
    for (const remote of remotes) {
      const { fetchUrl } = remote;
    }
    

    您可以使用工作区获取当前工作区路径(不过可能有更好的方法):

    const workspaceRootUris = vscode.window.workspaceFolders.map(ws => ws.uri);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-05
      • 2017-03-13
      • 1970-01-01
      • 2018-04-17
      • 2018-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多