Don't use plugin classloader to get Kotlin plugin info
Issue #KT-31598 Fixed
This commit is contained in:
@@ -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)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user