diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/JetSourceFilterScope.java b/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/JetSourceFilterScope.java index c17a72a863d..4b0559bc869 100644 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/JetSourceFilterScope.java +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/stubindex/JetSourceFilterScope.java @@ -31,7 +31,15 @@ public class JetSourceFilterScope extends DelegatingGlobalSearchScope { if (delegate instanceof JetSourceFilterScope) { return delegate; } - return new JetSourceFilterScope(delegate, true, project); + return new JetSourceFilterScope(delegate, true, true, project); + } + + @NotNull + public static GlobalSearchScope kotlinSourceAndClassFiles(@NotNull GlobalSearchScope delegate, @NotNull Project project) { + if (delegate instanceof JetSourceFilterScope) { + delegate = ((JetSourceFilterScope) delegate).myBaseScope; + } + return new JetSourceFilterScope(delegate, false, true, project); } @NotNull @@ -39,18 +47,25 @@ public class JetSourceFilterScope extends DelegatingGlobalSearchScope { if (delegate instanceof JetSourceFilterScope) { delegate = ((JetSourceFilterScope) delegate).myBaseScope; } - return new JetSourceFilterScope(delegate, false, project); + return new JetSourceFilterScope(delegate, false, false, project); } private final ProjectFileIndex index; private final Project project; - private final boolean includeLibraries; + private final boolean includeLibrarySourceFiles; + private final boolean includeClassFiles; - private JetSourceFilterScope(@NotNull GlobalSearchScope delegate, boolean includeLibraries, @NotNull Project project) { + private JetSourceFilterScope( + @NotNull GlobalSearchScope delegate, + boolean includeLibrarySourceFiles, + boolean includeClassFiles, + @NotNull Project project + ) { super(delegate); this.index = ProjectRootManager.getInstance(project).getFileIndex(); this.project = project; - this.includeLibraries = includeLibraries; + this.includeLibrarySourceFiles = includeLibrarySourceFiles; + this.includeClassFiles = includeClassFiles; } @Override @@ -59,6 +74,6 @@ public class JetSourceFilterScope extends DelegatingGlobalSearchScope { return false; } - return ProjectRootsUtil.isInSources(project, file, /* includeTestSources */ includeLibraries, /* withLibraryClassesRoots */ true, index); + return ProjectRootsUtil.isInSources(project, file, includeLibrarySourceFiles, includeClassFiles, index); } } diff --git a/idea/idea-analysis/src/org/jetbrains/jet/plugin/util/ProjectRootsUtil.kt b/idea/idea-analysis/src/org/jetbrains/jet/plugin/util/ProjectRootsUtil.kt index ce8b2423ac3..187720f2adb 100644 --- a/idea/idea-analysis/src/org/jetbrains/jet/plugin/util/ProjectRootsUtil.kt +++ b/idea/idea-analysis/src/org/jetbrains/jet/plugin/util/ProjectRootsUtil.kt @@ -36,9 +36,8 @@ public object ProjectRootsUtil { return !JetModuleTypeManager.getInstance()!!.isKtFileInGradleProjectInWrongFolder(file, project) } - if (!includeLibrarySources) return false - - return (withLibraryClassesRoots && fileIndex.isInLibraryClasses(file)) || fileIndex.isInLibrarySource(file) + return (withLibraryClassesRoots && fileIndex.isInLibraryClasses(file)) + || (includeLibrarySources && fileIndex.isInLibrarySource(file)) } platformStatic