Don't use plugin classloader to get Kotlin plugin info

Issue #KT-31598 Fixed
This commit is contained in:
Dmitriy Dolovov
2019-05-31 12:45:49 +03:00
parent c2d118cb75
commit 2857c62dba
@@ -6,7 +6,6 @@
package org.jetbrains.kotlin.idea
import com.intellij.ide.plugins.IdeaPluginDescriptor
import com.intellij.ide.plugins.PluginManager
import com.intellij.ide.plugins.PluginManagerCore
import com.intellij.openapi.extensions.PluginId
import java.io.File
@@ -17,10 +16,15 @@ object KotlinPluginUtil {
constructor(plugin: IdeaPluginDescriptor) : this(plugin.pluginId, plugin.version, plugin.path)
}
private val KNOWN_KOTLIN_PLUGIN_IDS = listOf(
"org.jetbrains.kotlin",
"org.jetbrains.kotlin.native.clion",
"org.jetbrains.kotlin.native.appcode"
).map { PluginId.getId(it) }
private val KOTLIN_PLUGIN_INFO: KotlinPluginInfo by lazy {
val plugin = PluginManagerCore.getPluginByClassName(KotlinPluginUtil::class.java.name)?.let { pluginId ->
PluginManager.getPlugin(pluginId)
} ?: error("Kotlin plugin not found: " + Arrays.toString(PluginManagerCore.getPlugins()))
val plugin = PluginManagerCore.getPlugins().firstOrNull { it.pluginId in KNOWN_KOTLIN_PLUGIN_IDS }
?: error("Kotlin plugin not found: " + Arrays.toString(PluginManagerCore.getPlugins()))
KotlinPluginInfo(plugin)
}