【问题标题】:How to get existing SourceControl via VSCode extension API?如何通过 VSCode 扩展 API 获取现有的 SourceControl?
【发布时间】:2019-06-14 06:32:46
【问题描述】:
【问题讨论】:
标签:
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);