From 7267fce806638ef4a0656d73d60e84a60eff69be Mon Sep 17 00:00:00 2001 From: Sergey Malenkov Date: Fri, 16 Mar 2018 15:57:55 +0300 Subject: [PATCH] ChangeListScope is not bound to the specific ChangeList --- .../search/scope/packageSet/FilteredNamedScope.java | 12 ++++-------- .../search/scope/packageSet/FilteredPackageSet.java | 4 ++++ .../packageDependencies/ChangeListScope.java | 11 ++++------- .../ChangeListsScopesProvider.java | 4 ++-- 4 files changed, 14 insertions(+), 17 deletions(-) diff --git a/platform/analysis-api/src/com/intellij/psi/search/scope/packageSet/FilteredNamedScope.java b/platform/analysis-api/src/com/intellij/psi/search/scope/packageSet/FilteredNamedScope.java index 38961f496c3a..0376db6a01a8 100644 --- a/platform/analysis-api/src/com/intellij/psi/search/scope/packageSet/FilteredNamedScope.java +++ b/platform/analysis-api/src/com/intellij/psi/search/scope/packageSet/FilteredNamedScope.java @@ -1,23 +1,19 @@ // Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file. package com.intellij.psi.search.scope.packageSet; +import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFileFilter; import org.jetbrains.annotations.NotNull; import javax.swing.Icon; -import java.util.Collection; public class FilteredNamedScope extends NamedScope { - public FilteredNamedScope(@NotNull String name, @NotNull Icon icon, int priority, @NotNull Collection files) { - this(name, icon, priority, files::contains); - } - public FilteredNamedScope(@NotNull String name, @NotNull Icon icon, int priority, @NotNull VirtualFileFilter filter) { - super(name, icon, new AbstractPackageSet(name, priority) { + super(name, icon, new FilteredPackageSet(name, priority) { @Override - public boolean contains(VirtualFile file, NamedScopesHolder holder) { - return file != null && filter.accept(file); + public boolean contains(@NotNull VirtualFile file, @NotNull Project project) { + return filter.accept(file); } }); } diff --git a/platform/analysis-api/src/com/intellij/psi/search/scope/packageSet/FilteredPackageSet.java b/platform/analysis-api/src/com/intellij/psi/search/scope/packageSet/FilteredPackageSet.java index 640e30bfdf9d..a9657bffdc64 100644 --- a/platform/analysis-api/src/com/intellij/psi/search/scope/packageSet/FilteredPackageSet.java +++ b/platform/analysis-api/src/com/intellij/psi/search/scope/packageSet/FilteredPackageSet.java @@ -11,6 +11,10 @@ public abstract class FilteredPackageSet extends AbstractPackageSet { super(text); } + public FilteredPackageSet(@NotNull String text, int priority) { + super(text, priority); + } + public abstract boolean contains(@NotNull VirtualFile file, @NotNull Project project); @Override diff --git a/platform/lang-impl/src/com/intellij/packageDependencies/ChangeListScope.java b/platform/lang-impl/src/com/intellij/packageDependencies/ChangeListScope.java index 5fd7bf6caf5c..fbddd688aa9c 100644 --- a/platform/lang-impl/src/com/intellij/packageDependencies/ChangeListScope.java +++ b/platform/lang-impl/src/com/intellij/packageDependencies/ChangeListScope.java @@ -3,23 +3,20 @@ package com.intellij.packageDependencies; import com.intellij.icons.AllIcons; import com.intellij.ide.IdeBundle; -import com.intellij.openapi.vcs.changes.ChangeList; import com.intellij.openapi.vcs.changes.ChangeListManager; import com.intellij.psi.search.scope.packageSet.FilteredNamedScope; import org.jetbrains.annotations.NotNull; -import static com.intellij.openapi.vcs.changes.ChangesUtil.getAfterRevisionsFiles; -import static java.util.stream.Collectors.toList; - public final class ChangeListScope extends FilteredNamedScope { public static final String NAME = IdeBundle.message("scope.modified.files"); public ChangeListScope(@NotNull ChangeListManager manager) { - super(NAME, AllIcons.Toolwindows.ToolWindowChanges, 0, manager.getAffectedFiles()); + super(NAME, AllIcons.Toolwindows.ToolWindowChanges, 0, manager::isFileAffected); } - public ChangeListScope(@NotNull ChangeList list) { - super(list.getName(), AllIcons.Toolwindows.ToolWindowChanges, 0, getAfterRevisionsFiles(list.getChanges().stream()).collect(toList())); + public ChangeListScope(@NotNull ChangeListManager manager, @NotNull String name) { + super(name, AllIcons.Toolwindows.ToolWindowChanges, 0, + file -> manager.getChangeLists(file).stream().anyMatch(list -> list.getName().equals(name))); } @Override diff --git a/platform/lang-impl/src/com/intellij/packageDependencies/ChangeListsScopesProvider.java b/platform/lang-impl/src/com/intellij/packageDependencies/ChangeListsScopesProvider.java index c05927188fb0..b88a69ff24ec 100644 --- a/platform/lang-impl/src/com/intellij/packageDependencies/ChangeListsScopesProvider.java +++ b/platform/lang-impl/src/com/intellij/packageDependencies/ChangeListsScopesProvider.java @@ -38,7 +38,7 @@ public class ChangeListsScopesProvider extends CustomScopesProviderEx { final List result = new ArrayList<>(); result.add(new ChangeListScope(changeListManager)); for (ChangeList list : changeListManager.getChangeListsCopy()) { - result.add(new ChangeListScope(list)); + result.add(new ChangeListScope(changeListManager, list.getName())); } return result; } @@ -52,7 +52,7 @@ public class ChangeListsScopesProvider extends CustomScopesProviderEx { } final LocalChangeList changeList = changeListManager.findChangeList(name); if (changeList != null) { - return new ChangeListScope(changeList); + return new ChangeListScope(changeListManager, changeList.getName()); } return null; }