JsHeaderLibraryDetectionUtil -> KotlinJavaScriptLibraryDetectionUtil
JsHeaderLibraryPresentationProvider -> KotlinJavaScriptLibraryPresentationProvider
This commit is contained in:
+1
-1
@@ -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);
|
||||
}
|
||||
|
||||
+7
-8
@@ -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
|
||||
@@ -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
|
||||
|
||||
+5
-5
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user