Provide more info for EA-89216
This commit is contained in:
+15
-4
@@ -25,6 +25,7 @@ import com.intellij.openapi.vfs.VirtualFile
|
|||||||
import org.jetbrains.kotlin.idea.caches.JarUserDataManager
|
import org.jetbrains.kotlin.idea.caches.JarUserDataManager
|
||||||
import org.jetbrains.kotlin.js.JavaScript
|
import org.jetbrains.kotlin.js.JavaScript
|
||||||
import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils
|
import org.jetbrains.kotlin.utils.KotlinJavascriptMetadataUtils
|
||||||
|
import java.util.zip.ZipException
|
||||||
|
|
||||||
object KotlinJavaScriptLibraryDetectionUtil {
|
object KotlinJavaScriptLibraryDetectionUtil {
|
||||||
@JvmStatic fun isKotlinJavaScriptLibrary(library: Library): Boolean {
|
@JvmStatic fun isKotlinJavaScriptLibrary(library: Library): Boolean {
|
||||||
@@ -51,10 +52,20 @@ object KotlinJavaScriptLibraryDetectionUtil {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun isJsFileWithMetadata(file: VirtualFile): Boolean =
|
private fun isJsFileWithMetadata(file: VirtualFile): Boolean {
|
||||||
!file.isDirectory &&
|
if (!file.isDirectory && JavaScript.EXTENSION == file.extension) {
|
||||||
JavaScript.EXTENSION == file.extension &&
|
val content = try {
|
||||||
KotlinJavascriptMetadataUtils.hasMetadata(String(file.contentsToByteArray(false)))
|
file.contentsToByteArray(false)
|
||||||
|
}
|
||||||
|
catch (e: ZipException) {
|
||||||
|
throw RuntimeException("file:${file.path} isDirectory: ${file.isDirectory}, exists: ${file.exists()}", e)
|
||||||
|
}
|
||||||
|
|
||||||
|
return KotlinJavascriptMetadataUtils.hasMetadata(String(content))
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
object HasKotlinJSMetadataInJar : JarUserDataManager.JarBooleanPropertyCounter(HasKotlinJSMetadataInJar::class.simpleName!!) {
|
object HasKotlinJSMetadataInJar : JarUserDataManager.JarBooleanPropertyCounter(HasKotlinJSMetadataInJar::class.simpleName!!) {
|
||||||
override fun hasProperty(file: VirtualFile) = KotlinJavaScriptLibraryDetectionUtil.isJsFileWithMetadata(file)
|
override fun hasProperty(file: VirtualFile) = KotlinJavaScriptLibraryDetectionUtil.isJsFileWithMetadata(file)
|
||||||
|
|||||||
Reference in New Issue
Block a user