mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
GitOptionsTopHitProvider: two options added
This commit is contained in:
@@ -15,16 +15,19 @@
|
||||
*/
|
||||
package git4idea.config;
|
||||
|
||||
import com.intellij.dvcs.branch.DvcsSyncSettings;
|
||||
import com.intellij.ide.ui.OptionsTopHitProvider;
|
||||
import com.intellij.ide.ui.PublicMethodBasedOptionDescription;
|
||||
import com.intellij.ide.ui.search.BooleanOptionDescription;
|
||||
import com.intellij.openapi.components.ServiceManager;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.vcs.ProjectLevelVcsManager;
|
||||
import com.intellij.openapi.vcs.impl.VcsDescriptor;
|
||||
import git4idea.repo.GitRepositoryManager;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
|
||||
@@ -43,11 +46,28 @@ public final class GitOptionsTopHitProvider extends OptionsTopHitProvider {
|
||||
if (project != null) {
|
||||
for (VcsDescriptor descriptor : ProjectLevelVcsManager.getInstance(project).getAllVcss()) {
|
||||
if ("Git".equals(descriptor.getDisplayName())) {
|
||||
return Collections.unmodifiableCollection(Arrays.asList(
|
||||
option(project, "Git: Commit automatically on cherry-pick", "isAutoCommitOnCherryPick", "setAutoCommitOnCherryPick"),
|
||||
option(project, "Git: Auto-update if push of the current branch was rejected", "autoUpdateIfPushRejected", "setAutoUpdateIfPushRejected"),
|
||||
option(project, "Git: Warn if CRLF line separators are about to be committed", "warnAboutCrlf", "setWarnAboutCrlf"),
|
||||
option(project, "Git: Warn when committing in detached HEAD or during rebase", "warnAboutDetachedHead", "setWarnAboutDetachedHead")));
|
||||
final GitVcsSettings settings = GitVcsSettings.getInstance(project);
|
||||
ArrayList<BooleanOptionDescription> options = new ArrayList<BooleanOptionDescription>();
|
||||
options.add(option(project, "Git: Commit automatically on cherry-pick", "isAutoCommitOnCherryPick", "setAutoCommitOnCherryPick"));
|
||||
options.add(option(project, "Git: Auto-update if push of the current branch was rejected", "autoUpdateIfPushRejected", "setAutoUpdateIfPushRejected"));
|
||||
GitRepositoryManager manager = ServiceManager.getService(project, GitRepositoryManager.class);
|
||||
if (manager != null && manager.moreThanOneRoot()) {
|
||||
options.add(new BooleanOptionDescription("Git: Control repositories synchronously", "vcs.Git") {
|
||||
@Override
|
||||
public boolean isOptionEnabled() {
|
||||
return settings.getSyncSetting() == DvcsSyncSettings.Value.SYNC;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setOptionState(boolean enabled) {
|
||||
settings.setSyncSetting(enabled ? DvcsSyncSettings.Value.SYNC : DvcsSyncSettings.Value.DONT_SYNC);
|
||||
}
|
||||
});
|
||||
}
|
||||
options.add(option(project, "Git: Warn if CRLF line separators are about to be committed", "warnAboutCrlf", "setWarnAboutCrlf"));
|
||||
options.add(option(project, "Git: Warn when committing in detached HEAD or during rebase", "warnAboutDetachedHead", "setWarnAboutDetachedHead"));
|
||||
options.add(option(project, "Git: Allow force push", "isForcePushAllowed", "setForcePushAllowed"));
|
||||
return Collections.unmodifiableCollection(options);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user