diff --git a/idea/src/org/jetbrains/jet/plugin/framework/CustomLibraryDescriptorWithDefferConfig.java b/idea/src/org/jetbrains/jet/plugin/framework/CustomLibraryDescriptorWithDefferConfig.java index b15a043e29e..f383a83ed8d 100644 --- a/idea/src/org/jetbrains/jet/plugin/framework/CustomLibraryDescriptorWithDefferConfig.java +++ b/idea/src/org/jetbrains/jet/plugin/framework/CustomLibraryDescriptorWithDefferConfig.java @@ -19,9 +19,13 @@ package org.jetbrains.jet.plugin.framework; import com.beust.jcommander.internal.Lists; import com.intellij.openapi.module.Module; 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.LibraryKind; 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.vfs.VirtualFile; import kotlin.Function1; import org.jetbrains.annotations.NotNull; 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 java.io.File; +import java.util.Arrays; import java.util.List; public abstract class CustomLibraryDescriptorWithDefferConfig extends CustomLibraryDescription { @NotNull - public abstract String getLibraryNamePrefix(); + public abstract LibraryKind getLibraryKind(); @Nullable public abstract DeferredCopyFileRequests getCopyFileRequests(); @@ -45,12 +50,16 @@ public abstract class CustomLibraryDescriptorWithDefferConfig extends CustomLibr Library library = ProjectStructurePackage.findLibrary(rootModel.orderEntries(), new Function1() { @Override public Boolean invoke(@NotNull Library library) { - String name = library.getName(); - return name != null && name.startsWith(getLibraryNamePrefix()); + LibraryPresentationManager libraryPresentationManager = LibraryPresentationManager.getInstance(); + List 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(); try { diff --git a/idea/src/org/jetbrains/jet/plugin/framework/JSLibraryStdDescription.java b/idea/src/org/jetbrains/jet/plugin/framework/JSLibraryStdDescription.java index f855cb53d65..6d6a5d05e0b 100644 --- a/idea/src/org/jetbrains/jet/plugin/framework/JSLibraryStdDescription.java +++ b/idea/src/org/jetbrains/jet/plugin/framework/JSLibraryStdDescription.java @@ -66,8 +66,8 @@ public class JSLibraryStdDescription extends CustomLibraryDescriptorWithDefferCo @NotNull @Override - public String getLibraryNamePrefix() { - return LIBRARY_NAME; + public LibraryKind getLibraryKind() { + return KOTLIN_JAVASCRIPT_KIND; } @Nullable diff --git a/idea/src/org/jetbrains/jet/plugin/framework/JavaRuntimeLibraryDescription.java b/idea/src/org/jetbrains/jet/plugin/framework/JavaRuntimeLibraryDescription.java index 0b100d6d1f9..9e5f53a7070 100644 --- a/idea/src/org/jetbrains/jet/plugin/framework/JavaRuntimeLibraryDescription.java +++ b/idea/src/org/jetbrains/jet/plugin/framework/JavaRuntimeLibraryDescription.java @@ -66,8 +66,8 @@ public class JavaRuntimeLibraryDescription extends CustomLibraryDescriptorWithDe @NotNull @Override - public String getLibraryNamePrefix() { - return LIBRARY_NAME; + public LibraryKind getLibraryKind() { + return KOTLIN_JAVA_RUNTIME_KIND; } @Nullable