Supplier<GitLineHandler> (Project project, GitPullDialog dialog) { GitRemote remote = dialog.getSelectedRemote(); String remoteName = remote.getName(); VirtualFile root = dialog.gitRoot(); Set<GitPullOption> selectedOptions = dialog.getSelectedOptions(); GitRemoteBranch selectedBranch = dialog.getSelectedBranch(); return () -> { final List<String> urls = remote.getUrls(); GitLineHandler h = new GitLineHandler(project, root, GitCommand.PULL); h.setUrls(urls); h.addParameters("--no-stat"); for (GitPullOption option : selectedOptions) { h.addParameters(option.getOption()); } h.addParameters("-v"); if (GitVersionSpecialty.ABLE_TO_USE_PROGRESS_IN_REMOTE_COMMANDS.existsIn(project)) { h.addParameters("--progress"); } h.addParameters(remoteName); h.addParameters(selectedBranch.getNameForRemoteOperations()); return h; }; }