diff options
Diffstat (limited to 'platform/lang-impl/src/com/intellij/ide/util/scopeChooser')
-rw-r--r-- | platform/lang-impl/src/com/intellij/ide/util/scopeChooser/ScopeChooserCombo.java | 28 | ||||
-rw-r--r-- | platform/lang-impl/src/com/intellij/ide/util/scopeChooser/ScopeChooserConfigurable.java | 2 |
2 files changed, 21 insertions, 9 deletions
diff --git a/platform/lang-impl/src/com/intellij/ide/util/scopeChooser/ScopeChooserCombo.java b/platform/lang-impl/src/com/intellij/ide/util/scopeChooser/ScopeChooserCombo.java index 8297a3db8e1f..98190010159b 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/scopeChooser/ScopeChooserCombo.java +++ b/platform/lang-impl/src/com/intellij/ide/util/scopeChooser/ScopeChooserCombo.java @@ -29,6 +29,7 @@ import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.fileEditor.FileEditorManager; import com.intellij.openapi.module.*; import com.intellij.openapi.project.Project; +import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.Pair; import com.intellij.openapi.util.TextRange; import com.intellij.openapi.vfs.VirtualFile; @@ -411,21 +412,32 @@ public class ScopeChooserCombo extends ComboboxWithBrowseButton implements Dispo } } - if (dataContext != null) { - final VirtualFile[] files = CommonDataKeys.VIRTUAL_FILE_ARRAY.getData(dataContext); - if (files != null) { - final List<VirtualFile> openFiles = Arrays.asList(files); - result.add(new DelegatingGlobalSearchScope(GlobalSearchScope.filesScope(project, openFiles)){ + ContainerUtil.addIfNotNull(result, getSelectedFilesScope(project, dataContext)); + + return ContainerUtil.newArrayList(result); + } + + @Nullable + private static SearchScope getSelectedFilesScope(final Project project, @Nullable DataContext dataContext) { + final VirtualFile[] filesOrDirs = dataContext == null ? null : CommonDataKeys.VIRTUAL_FILE_ARRAY.getData(dataContext); + if (filesOrDirs != null) { + final List<VirtualFile> selectedFiles = ContainerUtil.filter(filesOrDirs, new Condition<VirtualFile>() { + @Override + public boolean value(VirtualFile file) { + return !file.isDirectory(); + } + }); + if (!selectedFiles.isEmpty()) { + return new DelegatingGlobalSearchScope(GlobalSearchScope.filesScope(project, selectedFiles)){ @NotNull @Override public String getDisplayName() { return "Selected Files"; } - }); + }; } } - - return ContainerUtil.newArrayList(result); + return null; } protected static Set<VirtualFile> collectFiles(Set<Usage> usages, boolean findFirst) { diff --git a/platform/lang-impl/src/com/intellij/ide/util/scopeChooser/ScopeChooserConfigurable.java b/platform/lang-impl/src/com/intellij/ide/util/scopeChooser/ScopeChooserConfigurable.java index 96de48a0db13..a2bf7a47af28 100644 --- a/platform/lang-impl/src/com/intellij/ide/util/scopeChooser/ScopeChooserConfigurable.java +++ b/platform/lang-impl/src/com/intellij/ide/util/scopeChooser/ScopeChooserConfigurable.java @@ -81,7 +81,7 @@ public class ScopeChooserConfigurable extends MasterDetailsComponent implements @Override protected Dimension getPanelPreferredSize() { - return new Dimension(-1, -1); + return new Dimension(400, 200); } @Override |