mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Dynamically forming JS library scope, removed JSLibraryScopeFilter
This commit is contained in:
+32
-22
@@ -47,7 +47,6 @@ public class ScriptingLibraryMappings extends LanguagePerFileMappings<ScriptingL
|
||||
private final ScriptingLibraryManager myLibraryManager;
|
||||
private final Map<VirtualFile, CompoundLibrary> myCompoundLibMap = new HashMap<VirtualFile, CompoundLibrary>();
|
||||
private CompoundLibrary myProjectLibs = new CompoundLibrary();
|
||||
private Set<VirtualFile> myProjectLibFiles;
|
||||
|
||||
public ScriptingLibraryMappings(final Project project, final LibraryType libraryType) {
|
||||
super(project);
|
||||
@@ -96,7 +95,6 @@ public class ScriptingLibraryMappings extends LanguagePerFileMappings<ScriptingL
|
||||
public void setMappings(Map<VirtualFile, ScriptingLibraryTable.LibraryModel> mappings) {
|
||||
super.setMappings(mappings);
|
||||
updateDependencies(mappings);
|
||||
updateProjectLibraryFiles();
|
||||
}
|
||||
|
||||
private static boolean dependencyExists(ModuleRootManager rootManager, Library library) {
|
||||
@@ -173,7 +171,6 @@ public class ScriptingLibraryMappings extends LanguagePerFileMappings<ScriptingL
|
||||
setMapping(file, container);
|
||||
}
|
||||
updateDependencies(getMappings());
|
||||
updateProjectLibraryFiles();
|
||||
}
|
||||
|
||||
public boolean isAssociatedWith(VirtualFile file, String libName) {
|
||||
@@ -378,6 +375,24 @@ public class ScriptingLibraryMappings extends LanguagePerFileMappings<ScriptingL
|
||||
myLibraries.clear();
|
||||
myLibraries.putAll(myOldLibraries);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<VirtualFile> getSourceFiles() {
|
||||
Set<VirtualFile> sourceFiles = new HashSet<VirtualFile>();
|
||||
for (ScriptingLibraryTable.LibraryModel libModel : myLibraries.values()) {
|
||||
sourceFiles.addAll(libModel.getSourceFiles());
|
||||
}
|
||||
return sourceFiles;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<VirtualFile> getCompactFiles() {
|
||||
Set<VirtualFile> compactFiles = new HashSet<VirtualFile>();
|
||||
for (ScriptingLibraryTable.LibraryModel libModel : myLibraries.values()) {
|
||||
compactFiles.addAll(libModel.getCompactFiles());
|
||||
}
|
||||
return compactFiles;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -403,26 +418,21 @@ public class ScriptingLibraryMappings extends LanguagePerFileMappings<ScriptingL
|
||||
}
|
||||
return isApplicable(libFile, srcFile.getParent());
|
||||
}
|
||||
|
||||
private void updateProjectLibraryFiles() {
|
||||
myProjectLibFiles = new HashSet<VirtualFile>();
|
||||
for (ScriptingLibraryTable.LibraryModel container : getMappings().values()) {
|
||||
if (container instanceof CompoundLibrary) {
|
||||
for (ScriptingLibraryTable.LibraryModel libModel : ((CompoundLibrary)container).getLibraries()) {
|
||||
myProjectLibFiles.addAll(Arrays.asList(libModel.getSourceFiles()));
|
||||
myProjectLibFiles.addAll(Arrays.asList(libModel.getCompactFiles()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public Set<VirtualFile> getProjectLibraryFiles() {
|
||||
if (myProjectLibFiles == null) {
|
||||
updateProjectLibraryFiles();
|
||||
}
|
||||
return myProjectLibFiles;
|
||||
|
||||
public Set<VirtualFile> getLibraryFilesFor(VirtualFile srcFile) {
|
||||
Set<VirtualFile> libFiles = new HashSet<VirtualFile>();
|
||||
collectLibraryFilesFor(srcFile, libFiles);
|
||||
return libFiles;
|
||||
}
|
||||
|
||||
|
||||
private void collectLibraryFilesFor(VirtualFile file, Set<VirtualFile> libFiles) {
|
||||
if (file == null) return;
|
||||
ScriptingLibraryTable.LibraryModel libraryModel = getMapping(file);
|
||||
if (libraryModel != null) {
|
||||
libFiles.addAll(libraryModel.getCompactFiles());
|
||||
libFiles.addAll(libraryModel.getSourceFiles());
|
||||
}
|
||||
collectLibraryFilesFor(file.getParent(), libFiles);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -44,6 +44,7 @@ import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Set;
|
||||
|
||||
public class EditLibraryDialog extends DialogWrapper {
|
||||
|
||||
@@ -290,11 +291,11 @@ public class EditLibraryDialog extends DialogWrapper {
|
||||
fireTableDataChanged();
|
||||
}
|
||||
|
||||
public void setFiles(VirtualFile[] sourceFiles, VirtualFile[] compactFiles) {
|
||||
public void setFiles(Set<VirtualFile> sourceFiles, Set<VirtualFile> compactFiles) {
|
||||
myFiles.clear();
|
||||
myFiles.addAll(Arrays.asList(sourceFiles));
|
||||
myFiles.addAll(Arrays.asList(compactFiles));
|
||||
myCompactFiles.addAll(Arrays.asList(compactFiles));
|
||||
myFiles.addAll(sourceFiles);
|
||||
myFiles.addAll(compactFiles);
|
||||
myCompactFiles.addAll(compactFiles);
|
||||
}
|
||||
|
||||
public void setFileType(VirtualFile file, boolean isCompact) {
|
||||
|
||||
+6
-6
@@ -79,7 +79,7 @@ public class ScriptingLibraryTable {
|
||||
if (myCompactFilesCache == null) {
|
||||
myCompactFilesCache = new HashSet<VirtualFile>();
|
||||
for (LibraryModel libraryModel : myLibraryModels) {
|
||||
myCompactFilesCache.addAll(Arrays.asList(libraryModel.getCompactFiles()));
|
||||
myCompactFilesCache.addAll(libraryModel.getCompactFiles());
|
||||
}
|
||||
}
|
||||
return myCompactFilesCache.contains(file);
|
||||
@@ -183,12 +183,12 @@ public class ScriptingLibraryTable {
|
||||
myDocUrls.addAll(Arrays.asList(docUrls));
|
||||
}
|
||||
|
||||
public VirtualFile[] getSourceFiles() {
|
||||
return mySourceFiles.toArray(new VirtualFile[mySourceFiles.size()]);
|
||||
public Set<VirtualFile> getSourceFiles() {
|
||||
return mySourceFiles;
|
||||
}
|
||||
|
||||
public VirtualFile[] getCompactFiles() {
|
||||
return myCompactFiles.toArray(new VirtualFile[myCompactFiles.size()]);
|
||||
public Set<VirtualFile> getCompactFiles() {
|
||||
return myCompactFiles;
|
||||
}
|
||||
|
||||
public String[] getDocUrls() {
|
||||
@@ -196,7 +196,7 @@ public class ScriptingLibraryTable {
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public VirtualFile[] getFiles(OrderRootType rootType) {
|
||||
public Set<VirtualFile> getFiles(OrderRootType rootType) {
|
||||
if (rootType == COMPACT_ROOT_TYPE) {
|
||||
return getCompactFiles();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user