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 package org.jetbrains.kotlin.idea
import com.intellij.ide.plugins.IdeaPluginDescriptor import com.intellij.ide.plugins.IdeaPluginDescriptor
import com.intellij.ide.plugins.PluginManager
import com.intellij.ide.plugins.PluginManagerCore import com.intellij.ide.plugins.PluginManagerCore
import com.intellij.openapi.extensions.PluginId import com.intellij.openapi.extensions.PluginId
import java.io.File import java.io.File
@@ -17,10 +16,15 @@ object KotlinPluginUtil {
constructor(plugin: IdeaPluginDescriptor) : this(plugin.pluginId, plugin.version, plugin.path) 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 { private val KOTLIN_PLUGIN_INFO: KotlinPluginInfo by lazy {
val plugin = PluginManagerCore.getPluginByClassName(KotlinPluginUtil::class.java.name)?.let { pluginId -> val plugin = PluginManagerCore.getPlugins().firstOrNull { it.pluginId in KNOWN_KOTLIN_PLUGIN_IDS }
PluginManager.getPlugin(pluginId) ?: error("Kotlin plugin not found: " + Arrays.toString(PluginManagerCore.getPlugins()))
} ?: error("Kotlin plugin not found: " + Arrays.toString(PluginManagerCore.getPlugins()))
KotlinPluginInfo(plugin) KotlinPluginInfo(plugin)
} }