Search library kinds
#KT-4644 In Progress
This commit is contained in:
+13
-4
@@ -19,9 +19,13 @@ package org.jetbrains.jet.plugin.framework;
|
|||||||
import com.beust.jcommander.internal.Lists;
|
import com.beust.jcommander.internal.Lists;
|
||||||
import com.intellij.openapi.module.Module;
|
import com.intellij.openapi.module.Module;
|
||||||
import com.intellij.openapi.roots.ModifiableRootModel;
|
import com.intellij.openapi.roots.ModifiableRootModel;
|
||||||
|
import com.intellij.openapi.roots.OrderRootType;
|
||||||
import com.intellij.openapi.roots.libraries.Library;
|
import com.intellij.openapi.roots.libraries.Library;
|
||||||
|
import com.intellij.openapi.roots.libraries.LibraryKind;
|
||||||
import com.intellij.openapi.roots.ui.configuration.libraries.CustomLibraryDescription;
|
import com.intellij.openapi.roots.ui.configuration.libraries.CustomLibraryDescription;
|
||||||
|
import com.intellij.openapi.roots.ui.configuration.libraries.LibraryPresentationManager;
|
||||||
import com.intellij.openapi.util.io.FileUtil;
|
import com.intellij.openapi.util.io.FileUtil;
|
||||||
|
import com.intellij.openapi.vfs.VirtualFile;
|
||||||
import kotlin.Function1;
|
import kotlin.Function1;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
@@ -29,11 +33,12 @@ import org.jetbrains.jet.plugin.configuration.KotlinWithLibraryConfigurator;
|
|||||||
import org.jetbrains.jet.plugin.util.projectStructure.ProjectStructurePackage;
|
import org.jetbrains.jet.plugin.util.projectStructure.ProjectStructurePackage;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public abstract class CustomLibraryDescriptorWithDefferConfig extends CustomLibraryDescription {
|
public abstract class CustomLibraryDescriptorWithDefferConfig extends CustomLibraryDescription {
|
||||||
@NotNull
|
@NotNull
|
||||||
public abstract String getLibraryNamePrefix();
|
public abstract LibraryKind getLibraryKind();
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public abstract DeferredCopyFileRequests getCopyFileRequests();
|
public abstract DeferredCopyFileRequests getCopyFileRequests();
|
||||||
@@ -45,12 +50,16 @@ public abstract class CustomLibraryDescriptorWithDefferConfig extends CustomLibr
|
|||||||
Library library = ProjectStructurePackage.findLibrary(rootModel.orderEntries(), new Function1<Library, Boolean>() {
|
Library library = ProjectStructurePackage.findLibrary(rootModel.orderEntries(), new Function1<Library, Boolean>() {
|
||||||
@Override
|
@Override
|
||||||
public Boolean invoke(@NotNull Library library) {
|
public Boolean invoke(@NotNull Library library) {
|
||||||
String name = library.getName();
|
LibraryPresentationManager libraryPresentationManager = LibraryPresentationManager.getInstance();
|
||||||
return name != null && name.startsWith(getLibraryNamePrefix());
|
List<VirtualFile> classFiles = Arrays.asList(library.getFiles(OrderRootType.CLASSES));
|
||||||
|
|
||||||
|
return libraryPresentationManager.isLibraryOfKind(classFiles, getLibraryKind());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (library == null) return;
|
if (library == null) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Library.ModifiableModel model = library.getModifiableModel();
|
Library.ModifiableModel model = library.getModifiableModel();
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -66,8 +66,8 @@ public class JSLibraryStdDescription extends CustomLibraryDescriptorWithDefferCo
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public String getLibraryNamePrefix() {
|
public LibraryKind getLibraryKind() {
|
||||||
return LIBRARY_NAME;
|
return KOTLIN_JAVASCRIPT_KIND;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|||||||
@@ -66,8 +66,8 @@ public class JavaRuntimeLibraryDescription extends CustomLibraryDescriptorWithDe
|
|||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
@Override
|
@Override
|
||||||
public String getLibraryNamePrefix() {
|
public LibraryKind getLibraryKind() {
|
||||||
return LIBRARY_NAME;
|
return KOTLIN_JAVA_RUNTIME_KIND;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|||||||
Reference in New Issue
Block a user