sre*_*vas 6 visual-studio-code vscode-extensions
我想在我的扩展程序中使用vscode git api来执行git clone和其他任务。可以从vscode api访问吗?代码在这里.. api
Nis*_*ant 11
在 vscode 扩展中使用 git api 的示例代码:
const gitExtension = vscode.extensions.getExtension('vscode.git').exports;
const api = gitExtension.getAPI(1);
const repo = api.repositories[0];
const head = repo.state.HEAD;
// Get the branch and commit
const {commit,name: branch} = head;
// Get head of any other branch
const mainBranch = 'master'
const branchDetails = await repo.getBranch(mainBranch);
// Get last merge commit
const lastMergeCommit = await repo.getMergeBase(branch, mainBranch);
const status = await repo.status();
console.log({ branch, commit, lastMergeCommit, needsSync: lastMergeCommit !== commit });
Run Code Online (Sandbox Code Playgroud)
您还必须更新 package.json 中的扩展依赖项:
"extensionDependencies": [
"vscode.git"
]
Run Code Online (Sandbox Code Playgroud)
推特来救援!我在那里询问并指出这里的 API 定义:https : //github.com/Microsoft/vscode/blob/master/extensions/git/src/api/git.d.ts
...这里有一个例子:https : //github.com/Microsoft/vscode-pull-request-github/blob/master/src/extension.ts#L53
// Import the git.d.ts file
import { API as GitAPI, GitExtension, APIState } from './typings/git';
const gitExtension = vscode.extensions.getExtension<GitExtension>('vscode.git').exports;
const api = gitExtension.getAPI(1);
const rootPath = vscode.workspace.rootPath;
const repository = api.repositories.filter(r => isDescendant(r.rootUri.fsPath, rootPath))[0];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
628 次 |
| 最近记录: |