浏览代码

Allows dynamic switching of insiders

main
Eric Amodio 7 年前
父节点
当前提交
ee40dc6325
共有 1 个文件被更改,包括 26 次插入16 次删除
  1. +26
    -16
      src/extension.ts

+ 26
- 16
src/extension.ts 查看文件

@ -62,21 +62,12 @@ export async function activate(context: ExtensionContext) {
notifyOnUnsupportedGitVersion(context, gitVersion);
notifyOnNewGitLensVersion(context, gitlensVersion);
let gitEnabled = workspace.getConfiguration('git').get<boolean>('enabled');
setCommandContext(CommandContext.Enabled, gitEnabled);
context.subscriptions.push(workspace.onDidChangeConfiguration(() => {
if (gitEnabled !== workspace.getConfiguration('git').get<boolean>('enabled')) {
gitEnabled = !gitEnabled;
setCommandContext(CommandContext.Enabled, gitEnabled);
}
}, this));
context.workspaceState.update(WorkspaceState.RepoPath, repoPath);
const git = new GitService(context);
context.subscriptions.push(git);
setRemoteCommandsContext(context, git);
setCommandsContext(context, git);
const blameabilityTracker = new BlameabilityTracker(git);
context.subscriptions.push(blameabilityTracker);
@ -154,11 +145,30 @@ async function notifyOnUnsupportedGitVersion(context: ExtensionContext, version:
}
}
async function setRemoteCommandsContext(context: ExtensionContext, git: GitService): Promise<void> {
let hasRemotes = false;
if (git.config.insiders) {
const remotes = await git.getRemotes(git.repoPath);
hasRemotes = remotes.length !== 0;
let savedGitEnabled: boolean;
let savedInsiders: boolean;
async function setCommandsContext(context: ExtensionContext, git: GitService): Promise<void> {
onCommandsContextConfigurationChanged(git);
context.subscriptions.push(workspace.onDidChangeConfiguration(() => onCommandsContextConfigurationChanged(git), this));
}
async function onCommandsContextConfigurationChanged(git: GitService) {
const gitEnabled = workspace.getConfiguration('git').get<boolean>('enabled');
if (gitEnabled !== savedGitEnabled) {
savedGitEnabled = gitEnabled;
setCommandContext(CommandContext.Enabled, gitEnabled);
}
const insiders = workspace.getConfiguration('gitlens').get<boolean>('insiders');
if (insiders !== savedInsiders) {
savedInsiders = insiders;
let hasRemotes = false;
if (insiders) {
const remotes = await git.getRemotes(git.repoPath);
hasRemotes = remotes.length !== 0;
}
setCommandContext(CommandContext.HasRemotes, hasRemotes);
}
setCommandContext(CommandContext.HasRemotes, hasRemotes);
}

正在加载...
取消
保存