TextCompletionProvider (@NotNull Project project, @NotNull List<GitRepository> repositories, @NotNull Disposable disposable) { VcsLogManager logManager = VcsProjectLog.getInstance(project).getLogManager(); if (logManager != null) { List<VirtualFile> roots = ContainerUtil.map(repositories, Repository::getRoot); DataPack dataPack = logManager.getDataManager().getDataPack(); if (dataPack != DataPack.EMPTY) { VcsGoToRefComparator comparator = new VcsGoToRefComparator(dataPack.getLogProviders()); return new MyVcsRefCompletionProvider(dataPack.getRefsModel(), roots, comparator); } } List<GitBranch> branches = ContainerUtil.concat(GitBranchUtil.getCommonLocalBranches(repositories), GitBranchUtil.getCommonRemoteBranches(repositories)); Future<Collection<GitTag>> tagsFuture = scheduleCollectCommonTags(repositories, disposable); return new MySimpleCompletionListProvider(branches, tagsFuture); }