JsHeaderLibraryDetectionUtil -> KotlinJavaScriptLibraryDetectionUtil

JsHeaderLibraryPresentationProvider -> KotlinJavaScriptLibraryPresentationProvider
This commit is contained in:
Michael Nedzelsky
2015-04-17 22:48:13 +03:00
parent ebcc29b907
commit 484a73c17e
4 changed files with 14 additions and 15 deletions
@@ -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);
}
@@ -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<VirtualFile>): 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<VirtualFile>): Boolean =
isJsLibraryWithAcceptedFile(classesRoots) { JetFileType.EXTENSION == it.getExtension() }
public fun isKotlinJavaScriptLibrary(classesRoots: List<VirtualFile>): Boolean =
isJsLibraryWithAcceptedFile(classesRoots) { isJsFileWithMetadata(it) }
private fun isJsLibraryWithAcceptedFile(classesRoots: List<VirtualFile>, accept: (VirtualFile) -> Boolean): Boolean =
JavaRuntimeDetectionUtil.getJavaRuntimeVersion(classesRoots) == null // Prevent clashing with java runtime
+1 -1
View File
@@ -435,7 +435,7 @@
<library.presentationProvider implementation="org.jetbrains.kotlin.idea.framework.JavaRuntimePresentationProvider"/>
<library.presentationProvider implementation="org.jetbrains.kotlin.idea.framework.JSLibraryStdPresentationProvider"/>
<library.presentationProvider implementation="org.jetbrains.kotlin.idea.framework.JsHeaderLibraryPresentationProvider"/>
<library.presentationProvider implementation="org.jetbrains.kotlin.idea.framework.KotlinJavaScriptLibraryPresentationProvider"/>
<typeHierarchyProvider language="jet" implementationClass="org.jetbrains.kotlin.idea.hierarchy.KotlinTypeHierarchyProvider"/>
<callHierarchyProvider
@@ -27,14 +27,14 @@ import org.jetbrains.kotlin.idea.JetIcons;
import javax.swing.*;
import java.util.List;
public class JsHeaderLibraryPresentationProvider extends LibraryPresentationProvider<LibraryVersionProperties> {
public class KotlinJavaScriptLibraryPresentationProvider extends LibraryPresentationProvider<LibraryVersionProperties> {
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<VirtualFile> classesRoots) {
return JsHeaderLibraryDetectionUtil.isJsHeaderLibraryDetected(classesRoots) ? new LibraryVersionProperties(null) : null;
return KotlinJavaScriptLibraryDetectionUtil.isKotlinJavaScriptLibrary(classesRoots) ? new LibraryVersionProperties(null) : null;
}
}