}
@NotNull
- public static GlobalSearchScope fileScope(@NotNull Project project, final VirtualFile virtualFile, @Nullable final String displayName) {
+ public static GlobalSearchScope fileScope(@NotNull Project project, @Nullable VirtualFile virtualFile, @Nullable final String displayName) {
return new FileScope(project, virtualFile) {
@NotNull
@Override
private final Module myModule;
private final boolean mySearchOutsideContent;
- private FileScope(@NotNull Project project, VirtualFile virtualFile) {
+ private FileScope(@NotNull Project project, @Nullable VirtualFile virtualFile) {
super(project);
myVirtualFile = virtualFile;
final FileIndexFacade facade = FileIndexFacade.getInstance(project);
import com.intellij.openapi.fileEditor.FileEditorManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
+import com.intellij.util.ArrayUtil;
import org.jetbrains.annotations.NotNull;
import java.util.Arrays;
* @author yole
*/
public class GlobalSearchScopes extends GlobalSearchScopesCore {
+
+ public static final String OPEN_FILES_SCOPE_NAME = "Open Files";
+
private GlobalSearchScopes() {
}
@NotNull
public static GlobalSearchScope openFilesScope(@NotNull Project project) {
final VirtualFile[] files = FileEditorManager.getInstance(project).getOpenFiles();
- return GlobalSearchScope.filesScope(project, Arrays.asList(files), "Open Files");
+ if (ArrayUtil.isEmpty(files)) {
+ // prefer a scope with meaningful getDisplayName(), avoid GlobalSearchScope.EMPTY_SCOPE
+ return GlobalSearchScope.fileScope(project, null, OPEN_FILES_SCOPE_NAME);
+ }
+ return GlobalSearchScope.filesScope(project, Arrays.asList(files), OPEN_FILES_SCOPE_NAME);
}
}
public class ScopeChooserUtils {
- private static final String OPEN_FILES_SCOPE_NAME = "Open Files";
private static final String CURRENT_FILE_SCOPE_NAME = IdeBundle.message("scope.current.file");
private ScopeChooserUtils() {
if (namedScope == null) {
namedScope = NamedScopesHolder.getScope(project, scopeName);
}
- if (namedScope == null && OPEN_FILES_SCOPE_NAME.equals(scopeName)) {
+ if (namedScope == null && GlobalSearchScopes.OPEN_FILES_SCOPE_NAME.equals(scopeName)) {
return intersectWithContentScope(project, GlobalSearchScopes.openFilesScope(project));
}
if (namedScope == null && CURRENT_FILE_SCOPE_NAME.equals(scopeName)) {