deprecate SearchScopeProvider and move its methods to a better place

SearchScopeProvider is a confusing name for a utility class like that.
This commit is contained in:
Gregory.Shrago
2019-04-08 00:48:29 +03:00
parent 6b0d61e417
commit bb784376e7
10 changed files with 59 additions and 26 deletions
@@ -17,6 +17,7 @@ import com.intellij.openapi.roots.ProjectRootManager;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.search.DelegatingGlobalSearchScope;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.search.GlobalSearchScopes;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -48,7 +49,7 @@ public class DefaultDebugEnvironment implements DebugEnvironment {
}
private static GlobalSearchScope createSearchScope(@NotNull Project project, @Nullable RunProfile runProfile) {
GlobalSearchScope scope = SearchScopeProvider.createSearchScope(project, runProfile);
GlobalSearchScope scope = GlobalSearchScopes.executionScope(project, runProfile);
if (scope.equals(GlobalSearchScope.allScope(project))) {
// prefer sources over class files
return new DelegatingGlobalSearchScope(scope) {
@@ -17,6 +17,7 @@ import com.intellij.openapi.util.WriteExternalException;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.search.GlobalSearchScopes;
import com.intellij.util.xmlb.SkipDefaultValuesSerializationFilters;
import com.intellij.util.xmlb.XmlSerializer;
import com.intellij.util.xmlb.XmlSerializerUtil;
@@ -25,6 +26,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.File;
import java.util.Arrays;
import java.util.LinkedHashMap;
import java.util.Map;
@@ -120,7 +122,7 @@ public class JarApplicationConfiguration extends LocatableConfigurationBase impl
@Nullable
@Override
public GlobalSearchScope getSearchScope() {
return SearchScopeProvider.createSearchScope(getModules());
return GlobalSearchScopes.executionScope(Arrays.asList(getModules()));
}
@Nullable
@@ -13,7 +13,6 @@ import com.intellij.execution.ExecutionException;
import com.intellij.execution.ExecutionResult;
import com.intellij.execution.configurations.RemoteConnection;
import com.intellij.execution.configurations.RunProfile;
import com.intellij.execution.configurations.SearchScopeProvider;
import com.intellij.execution.impl.ConsoleViewImpl;
import com.intellij.execution.process.ProcessHandler;
import com.intellij.execution.runners.ExecutionEnvironment;
@@ -23,6 +22,7 @@ import com.intellij.openapi.actionSystem.DefaultActionGroup;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.project.Project;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.search.GlobalSearchScopes;
import com.intellij.remoteServer.configuration.RemoteServer;
import com.intellij.remoteServer.runtime.deployment.debug.JavaDebugConnectionData;
import com.intellij.remoteServer.runtime.deployment.debug.JavaDebugServerModeHandler;
@@ -115,7 +115,7 @@ public class JavaDebuggerLauncherImpl extends JavaDebuggerLauncher {
RemoteServerDebugEnvironment(Project project, RemoteConnection remoteConnection, RunProfile runProfile) {
myProject = project;
mySearchScope = SearchScopeProvider.createSearchScope(project, runProfile);
mySearchScope = GlobalSearchScopes.executionScope(project, runProfile);
myRemoteConnection = remoteConnection;
myRunProfile = runProfile;
}
@@ -60,9 +60,9 @@ import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VfsUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.search.GlobalSearchScopes;
import com.intellij.util.ArrayUtil;
import com.intellij.util.SmartList;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.net.NetUtils;
import com.intellij.util.text.CharArrayUtil;
import com.intellij.util.text.DateFormatUtil;
@@ -79,6 +79,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.util.Collections;
import java.util.List;
import static com.intellij.openapi.externalSystem.rt.execution.ForkedDebuggerHelper.DEBUG_FORK_SOCKET_PARAM;
@@ -204,7 +205,7 @@ public class ExternalSystemRunConfiguration extends LocatableConfigurationBase i
if (file != null) {
Module module = DirectoryIndex.getInstance(getProject()).getInfoForFile(file).getModule();
if (module != null) {
scope = SearchScopeProvider.createSearchScope(ContainerUtil.ar(module));
scope = GlobalSearchScopes.executionScope(Collections.singleton(module));
}
}
}
@@ -12,6 +12,7 @@ import com.intellij.execution.ui.ConsoleView;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.project.Project;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.search.GlobalSearchScopes;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -31,7 +32,7 @@ public abstract class CommandLineState implements RunProfileState {
myEnvironment = environment;
if (myEnvironment != null) {
final Project project = myEnvironment.getProject();
final GlobalSearchScope searchScope = SearchScopeProvider.createSearchScope(project, myEnvironment.getRunProfile());
final GlobalSearchScope searchScope = GlobalSearchScopes.executionScope(project, myEnvironment.getRunProfile());
myConsoleBuilder = TextConsoleBuilderFactory.getInstance().createBuilder(project, searchScope);
}
}
@@ -17,8 +17,11 @@
package com.intellij.execution.configurations;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.search.GlobalSearchScopes;
import org.jetbrains.annotations.Nullable;
import java.util.Arrays;
/**
* @author spleaner
*/
@@ -27,6 +30,6 @@ public interface ModuleRunProfile extends RunProfileWithCompileBeforeLaunchOptio
@Nullable
@Override
default GlobalSearchScope getSearchScope() {
return SearchScopeProvider.createSearchScope(getModules());
return GlobalSearchScopes.executionScope(Arrays.asList(getModules()));
}
}
@@ -18,31 +18,31 @@ package com.intellij.execution.configurations;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.psi.search.GlobalSearchScopes;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Arrays;
import java.util.Collection;
/**
* @author Vojtech Krasa
* @deprecated Use {@link GlobalSearchScopes}
*/
@Deprecated
public class SearchScopeProvider {
/** @deprecated Use {@link GlobalSearchScopes#executionScope(Collection)}*/
@Deprecated
@NotNull
public static GlobalSearchScope createSearchScope(@NotNull Project project, @Nullable RunProfile runProfile) {
if (runProfile instanceof SearchScopeProvidingRunProfile) {
GlobalSearchScope scope = ((SearchScopeProvidingRunProfile)runProfile).getSearchScope();
if (scope != null) return scope;
}
return GlobalSearchScope.allScope(project);
return GlobalSearchScopes.executionScope(project, runProfile);
}
/** @deprecated Use {@link GlobalSearchScopes#executionScope(Collection)}*/
@Deprecated
@Nullable
public static GlobalSearchScope createSearchScope(@NotNull Module[] modules) {
if (modules.length == 0) {
return null;
}
GlobalSearchScope[] scopes =
ContainerUtil.map2Array(modules, GlobalSearchScope.class, module -> GlobalSearchScope.moduleRuntimeScope(module, true));
return GlobalSearchScope.union(scopes);
return GlobalSearchScopes.executionScope(Arrays.asList(modules));
}
}
@@ -15,13 +15,20 @@
*/
package com.intellij.psi.search;
import com.intellij.execution.configurations.RunProfile;
import com.intellij.execution.configurations.SearchScopeProvidingRunProfile;
import com.intellij.ide.IdeBundle;
import com.intellij.openapi.fileEditor.FileEditorManager;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
/**
* @author yole
@@ -36,4 +43,21 @@ public class GlobalSearchScopes extends GlobalSearchScopesCore {
final VirtualFile[] files = fileEditorManager != null ? fileEditorManager.getOpenFiles() : VirtualFile.EMPTY_ARRAY;
return GlobalSearchScope.filesScope(project, Arrays.asList(files), IdeBundle.message("scope.open.files"));
}
@NotNull
public static GlobalSearchScope executionScope(@NotNull Project project, @Nullable RunProfile runProfile) {
if (runProfile instanceof SearchScopeProvidingRunProfile) {
GlobalSearchScope scope = ((SearchScopeProvidingRunProfile)runProfile).getSearchScope();
if (scope != null) return scope;
}
return GlobalSearchScope.allScope(project);
}
@Nullable
public static GlobalSearchScope executionScope(@NotNull Collection<Module> modules) {
if (modules.isEmpty()) return null;
List<GlobalSearchScope> scopes = ContainerUtil.map2List(
modules, module -> GlobalSearchScope.moduleRuntimeScope(module, true));
return GlobalSearchScope.union(scopes);
}
}
@@ -6,7 +6,6 @@ import com.intellij.diagnostic.logging.LogFilesManager;
import com.intellij.diagnostic.logging.OutputFileUtil;
import com.intellij.execution.configurations.RunConfigurationBase;
import com.intellij.execution.configurations.RunProfile;
import com.intellij.execution.configurations.SearchScopeProvider;
import com.intellij.execution.process.ProcessHandler;
import com.intellij.execution.ui.ExecutionConsole;
import com.intellij.execution.ui.RunContentDescriptor;
@@ -17,6 +16,7 @@ import com.intellij.openapi.actionSystem.DataProvider;
import com.intellij.openapi.actionSystem.LangDataKeys;
import com.intellij.openapi.project.Project;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.search.GlobalSearchScopes;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -37,7 +37,7 @@ public abstract class RunTab implements DataProvider, Disposable {
protected RunTab(@NotNull ExecutionEnvironment environment, @NotNull String runnerType) {
this(environment.getProject(),
SearchScopeProvider.createSearchScope(environment.getProject(), environment.getRunProfile()),
GlobalSearchScopes.executionScope(environment.getProject(), environment.getRunProfile()),
runnerType,
environment.getExecutor().getId(),
environment.getRunProfile().getName());
@@ -4,7 +4,6 @@ package org.jetbrains.plugins.gradle;
import com.intellij.execution.ExecutionException;
import com.intellij.execution.Executor;
import com.intellij.execution.configurations.RunConfiguration;
import com.intellij.execution.configurations.SearchScopeProvider;
import com.intellij.execution.configurations.SimpleJavaParameters;
import com.intellij.execution.testframework.sm.runner.SMTRunnerConsoleProperties;
import com.intellij.openapi.components.ServiceManager;
@@ -52,11 +51,13 @@ import com.intellij.openapi.util.Pair;
import com.intellij.openapi.util.io.FileUtilRt;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.search.GlobalSearchScope;
import com.intellij.psi.search.GlobalSearchScopes;
import com.intellij.util.Function;
import com.intellij.util.PathUtil;
import com.intellij.util.PathsList;
import com.intellij.util.containers.ContainerUtil;
import com.intellij.util.containers.ContainerUtilRt;
import com.intellij.util.containers.JBIterable;
import com.intellij.util.messages.MessageBusConnection;
import icons.GradleIcons;
import org.jetbrains.annotations.NotNull;
@@ -386,10 +387,10 @@ public final class GradleManager
return null;
}
else {
Module[] modules = Arrays.stream(ModuleManager.getInstance(project).getModules())
List<Module> modules = JBIterable.of(ModuleManager.getInstance(project).getModules())
.filter(module -> StringUtil.equals(projectPath, ExternalSystemApiUtil.getExternalProjectPath(module)))
.toArray(Module[]::new);
return modules.length > 0 ? SearchScopeProvider.createSearchScope(modules) : null;
.toList();
return modules.isEmpty() ? null : GlobalSearchScopes.executionScope(modules);
}
}