Get IDE plugin path from KotlinPluginUtil
This commit is contained in:
@@ -5,15 +5,28 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea
|
package org.jetbrains.kotlin.idea
|
||||||
|
|
||||||
|
import com.intellij.ide.plugins.IdeaPluginDescriptor
|
||||||
import com.intellij.ide.plugins.PluginManager
|
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.util.*
|
import java.util.*
|
||||||
|
|
||||||
object KotlinPluginUtil {
|
object KotlinPluginUtil {
|
||||||
|
private class KotlinPluginInfo(val id: PluginId, val version: String, val path: File) {
|
||||||
|
constructor(plugin: IdeaPluginDescriptor) : this(plugin.pluginId, plugin.version, plugin.path)
|
||||||
|
}
|
||||||
|
|
||||||
val KOTLIN_PLUGIN_ID: PluginId = PluginManagerCore.getPluginByClassName(KotlinPluginUtil::class.java.name)
|
private val KOTLIN_PLUGIN_INFO: KotlinPluginInfo by lazy {
|
||||||
?: PluginId.getId("org.jetbrains.kotlin")
|
val plugin = PluginManagerCore.getPluginByClassName(KotlinPluginUtil::class.java.name)?.let { pluginId ->
|
||||||
|
PluginManager.getPlugin(pluginId)
|
||||||
|
} ?: error("Kotlin plugin not found: " + Arrays.toString(PluginManagerCore.getPlugins()))
|
||||||
|
|
||||||
|
KotlinPluginInfo(plugin)
|
||||||
|
}
|
||||||
|
|
||||||
|
val KOTLIN_PLUGIN_ID: PluginId
|
||||||
|
get() = KOTLIN_PLUGIN_INFO.id
|
||||||
|
|
||||||
private const val PATCHED_PLUGIN_VERSION_KEY = "kotlin.plugin.version"
|
private const val PATCHED_PLUGIN_VERSION_KEY = "kotlin.plugin.version"
|
||||||
private val PATCHED_PLUGIN_VERSION: String? = System.getProperty(PATCHED_PLUGIN_VERSION_KEY, null)
|
private val PATCHED_PLUGIN_VERSION: String? = System.getProperty(PATCHED_PLUGIN_VERSION_KEY, null)
|
||||||
@@ -32,9 +45,7 @@ object KotlinPluginUtil {
|
|||||||
@Deprecated("This method returns original plugin version. Please use getPluginVersion() instead.")
|
@Deprecated("This method returns original plugin version. Please use getPluginVersion() instead.")
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
fun getPluginVersionFromIdea(): String {
|
fun getPluginVersionFromIdea(): String {
|
||||||
val plugin = PluginManager.getPlugin(KOTLIN_PLUGIN_ID)
|
return KOTLIN_PLUGIN_INFO.version
|
||||||
?: error("Kotlin plugin not found: " + Arrays.toString(PluginManagerCore.getPlugins()))
|
|
||||||
return plugin.version
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@JvmStatic
|
@JvmStatic
|
||||||
@@ -50,4 +61,8 @@ object KotlinPluginUtil {
|
|||||||
fun isDevVersion(): Boolean {
|
fun isDevVersion(): Boolean {
|
||||||
return getPluginVersion().contains("-dev-")
|
return getPluginVersion().contains("-dev-")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun getPluginPath(): File {
|
||||||
|
return KOTLIN_PLUGIN_INFO.path
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user