[vcs-log] leave regular expression branch filters in recent

This commit is contained in:
Julia Beliaeva
2018-04-10 23:11:46 +03:00
parent 7041d0ec61
commit 1611a60768
2 changed files with 19 additions and 3 deletions
@@ -198,8 +198,7 @@ public abstract class VcsLogUiPropertiesImpl implements PersistentStateComponent
@Override
@NotNull
public List<List<String>> getRecentlyFilteredBranchGroups() {
List<List<String>> groups = getRecentGroup(getState().RECENTLY_FILTERED_BRANCH_GROUPS);
return ContainerUtil.filter(groups, group -> group.size() > 1);
return getRecentGroup(getState().RECENTLY_FILTERED_BRANCH_GROUPS);
}
@NotNull
@@ -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<VcsLogBranchFilter> {
private final VcsLogClassicFilterUi.BranchFilterModel myBranchFilterModel;
@@ -89,7 +92,21 @@ public class BranchFilterPopupComponent extends MultipleValueFilterPopupComponen
@NotNull
@Override
protected List<List<String>> getRecentValuesFromSettings() {
return myUiProperties.getRecentlyFilteredBranchGroups();
List<List<String>> 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