diff --git a/platform/lang-impl/src/com/intellij/openapi/roots/libraries/scripting/ScriptingLibrariesScope.java b/platform/lang-impl/src/com/intellij/openapi/roots/libraries/scripting/ScriptingLibrariesScope.java index 3775379d474f..567ea4a4539a 100644 --- a/platform/lang-impl/src/com/intellij/openapi/roots/libraries/scripting/ScriptingLibrariesScope.java +++ b/platform/lang-impl/src/com/intellij/openapi/roots/libraries/scripting/ScriptingLibrariesScope.java @@ -29,25 +29,30 @@ import java.util.Set; public class ScriptingLibrariesScope extends GlobalSearchScope { private GlobalSearchScope myBaseScope; - private ScriptingIndexableSetContributor myContributor; protected Set myLibraryFiles; + private Set myAllLibraryFiles; public ScriptingLibrariesScope(GlobalSearchScope baseScope, Class providerClass) { super(baseScope.getProject()); myBaseScope = baseScope; IndexableSetContributor contributor = IndexableSetContributor.EP_NAME.findExtension(providerClass); - if (contributor instanceof ScriptingIndexableSetContributor) { - myContributor = (ScriptingIndexableSetContributor)contributor; - setLibraryFiles(); + if (contributor instanceof ScriptingIndexableSetContributor) { + myAllLibraryFiles = ((ScriptingIndexableSetContributor)contributor).getLibraryFiles(myBaseScope.getProject()); + myLibraryFiles = myAllLibraryFiles; } } - public void setLibraryFiles() { - myLibraryFiles = myContributor.getLibraryFiles(myBaseScope.getProject()); + protected void setLibraryFiles() { } public boolean contains(VirtualFile file) { - return myBaseScope.contains(file) | (myLibraryFiles == null ? false : myLibraryFiles.contains(file)); + // + // exclude library files from base scope + // + if (myAllLibraryFiles != null && myAllLibraryFiles.contains(file)) { + return myLibraryFiles == null ? false : myLibraryFiles.contains(file); + } + return myBaseScope.contains(file); } @Override