diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/framework/JsLibraryStdDetectionUtil.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/framework/JsLibraryStdDetectionUtil.java index e54bd6b39c2..d88a9d9bbfe 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/framework/JsLibraryStdDetectionUtil.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/framework/JsLibraryStdDetectionUtil.java @@ -52,7 +52,7 @@ public class JsLibraryStdDetectionUtil { VirtualFile jar = fixedJarName ? LibraryUtils.getJarFile(classesRoots, PathUtil.JS_LIB_JAR_NAME) : getJsStdLibJar(classesRoots); if (jar == null) return null; - assert JsHeaderLibraryDetectionUtil.isJsHeaderLibraryDetected(classesRoots) : "StdLib should also be detected as headers library"; + assert KotlinJavaScriptLibraryDetectionUtil.isKotlinJavaScriptLibrary(classesRoots) : "StdLib should also be detected as Kotlin/Javascript library"; return JarUtil.getJarAttribute(VfsUtilCore.virtualToIoFile(jar), Attributes.Name.IMPLEMENTATION_VERSION); } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/framework/JsHeaderLibraryDetectionUtil.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/framework/KotlinJavaScriptLibraryDetectionUtil.kt similarity index 75% rename from idea/idea-analysis/src/org/jetbrains/kotlin/idea/framework/JsHeaderLibraryDetectionUtil.kt rename to idea/idea-analysis/src/org/jetbrains/kotlin/idea/framework/KotlinJavaScriptLibraryDetectionUtil.kt index 58257ea3a03..d845d0ac661 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/framework/JsHeaderLibraryDetectionUtil.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/framework/KotlinJavaScriptLibraryDetectionUtil.kt @@ -17,24 +17,23 @@ package org.jetbrains.kotlin.idea.framework +import com.intellij.openapi.roots.OrderRootType +import com.intellij.openapi.roots.libraries.Library import com.intellij.openapi.vfs.VfsUtilCore import com.intellij.openapi.vfs.VirtualFile -import org.jetbrains.kotlin.idea.JetFileType import org.jetbrains.kotlin.js.JavaScript import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils import kotlin.platform.platformStatic -public object JsHeaderLibraryDetectionUtil { +public object KotlinJavaScriptLibraryDetectionUtil { platformStatic - public fun isJsHeaderLibraryDetected(classesRoots: List): Boolean = - isJsLibraryWithAcceptedFile(classesRoots) { - JetFileType.EXTENSION == it.getExtension() || isJsFileWithMetadata(it) - } + public fun isKotlinJavaScriptLibrary(library: Library): Boolean = + isKotlinJavaScriptLibrary(library.getFiles(OrderRootType.CLASSES).toList()) platformStatic - public fun isJsHeaderLibraryWithSources(classesRoots: List): Boolean = - isJsLibraryWithAcceptedFile(classesRoots) { JetFileType.EXTENSION == it.getExtension() } + public fun isKotlinJavaScriptLibrary(classesRoots: List): Boolean = + isJsLibraryWithAcceptedFile(classesRoots) { isJsFileWithMetadata(it) } private fun isJsLibraryWithAcceptedFile(classesRoots: List, accept: (VirtualFile) -> Boolean): Boolean = JavaRuntimeDetectionUtil.getJavaRuntimeVersion(classesRoots) == null // Prevent clashing with java runtime diff --git a/idea/src/META-INF/plugin.xml b/idea/src/META-INF/plugin.xml index fd0ec402288..29eecf8879a 100644 --- a/idea/src/META-INF/plugin.xml +++ b/idea/src/META-INF/plugin.xml @@ -435,7 +435,7 @@ - + { +public class KotlinJavaScriptLibraryPresentationProvider extends LibraryPresentationProvider { public static final LibraryKind KOTLIN_JAVASCRIPT_HEADER_KIND = LibraryKind.create("kotlin-js-header"); - public static JsHeaderLibraryPresentationProvider getInstance() { - return LibraryPresentationProvider.EP_NAME.findExtension(JsHeaderLibraryPresentationProvider.class); + public static KotlinJavaScriptLibraryPresentationProvider getInstance() { + return LibraryPresentationProvider.EP_NAME.findExtension(KotlinJavaScriptLibraryPresentationProvider.class); } - protected JsHeaderLibraryPresentationProvider() { + protected KotlinJavaScriptLibraryPresentationProvider() { super(KOTLIN_JAVASCRIPT_HEADER_KIND); } @@ -47,6 +47,6 @@ public class JsHeaderLibraryPresentationProvider extends LibraryPresentationProv @Nullable @Override public LibraryVersionProperties detect(@NotNull List classesRoots) { - return JsHeaderLibraryDetectionUtil.isJsHeaderLibraryDetected(classesRoots) ? new LibraryVersionProperties(null) : null; + return KotlinJavaScriptLibraryDetectionUtil.isKotlinJavaScriptLibrary(classesRoots) ? new LibraryVersionProperties(null) : null; } }