From 1611a60768aa02bb295b7fa181738c07338f766d Mon Sep 17 00:00:00 2001 From: Julia Beliaeva Date: Tue, 10 Apr 2018 23:11:15 +0300 Subject: [PATCH] [vcs-log] leave regular expression branch filters in recent --- .../vcs/log/impl/VcsLogUiPropertiesImpl.java | 3 +-- .../ui/filter/BranchFilterPopupComponent.java | 19 ++++++++++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogUiPropertiesImpl.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogUiPropertiesImpl.java index 2cc7588163f2..fea00101471d 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogUiPropertiesImpl.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/impl/VcsLogUiPropertiesImpl.java @@ -198,8 +198,7 @@ public abstract class VcsLogUiPropertiesImpl implements PersistentStateComponent @Override @NotNull public List> getRecentlyFilteredBranchGroups() { - List> groups = getRecentGroup(getState().RECENTLY_FILTERED_BRANCH_GROUPS); - return ContainerUtil.filter(groups, group -> group.size() > 1); + return getRecentGroup(getState().RECENTLY_FILTERED_BRANCH_GROUPS); } @NotNull diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/BranchFilterPopupComponent.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/BranchFilterPopupComponent.java index 5356abfc62c3..1edcb0f602fd 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/BranchFilterPopupComponent.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/BranchFilterPopupComponent.java @@ -33,6 +33,7 @@ import com.intellij.vcs.log.VcsLogBranchFilter; import com.intellij.vcs.log.VcsLogDataPack; import com.intellij.vcs.log.VcsRef; import com.intellij.vcs.log.impl.MainVcsLogUiProperties; +import com.intellij.vcs.log.util.VcsLogUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -41,6 +42,8 @@ import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.Collection; import java.util.List; +import java.util.regex.Pattern; +import java.util.regex.PatternSyntaxException; public class BranchFilterPopupComponent extends MultipleValueFilterPopupComponent { private final VcsLogClassicFilterUi.BranchFilterModel myBranchFilterModel; @@ -89,7 +92,21 @@ public class BranchFilterPopupComponent extends MultipleValueFilterPopupComponen @NotNull @Override protected List> getRecentValuesFromSettings() { - return myUiProperties.getRecentlyFilteredBranchGroups(); + List> groups = myUiProperties.getRecentlyFilteredBranchGroups(); + return ContainerUtil.filter(groups, group -> (group.size() == 1 && isPattern(group.get(0))) || group.size() > 1); + } + + private static boolean isPattern(@NotNull String string) { + if (string.startsWith("-")) return true; + if (VcsLogUtil.maybeRegexp(string)) { + try { + Pattern.compile(string); + return true; + } + catch (PatternSyntaxException ignored) { + } + } + return false; } @Override