mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Some JS library scope refactoring and tests
This commit is contained in:
+12
-7
@@ -29,25 +29,30 @@ import java.util.Set;
|
||||
public class ScriptingLibrariesScope extends GlobalSearchScope {
|
||||
|
||||
private GlobalSearchScope myBaseScope;
|
||||
private ScriptingIndexableSetContributor myContributor;
|
||||
protected Set<VirtualFile> myLibraryFiles;
|
||||
private Set<VirtualFile> myAllLibraryFiles;
|
||||
|
||||
public ScriptingLibrariesScope(GlobalSearchScope baseScope, Class<? extends IndexableSetContributor> 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
|
||||
|
||||
Reference in New Issue
Block a user