The dependencyResolver of StandardIdeScriptDefinition
checks whether the "RootType" is IdeConsoleRootType
, in that case it adds the IDEs + Kotlin's JARs (detected via URLClassLoader, mainly) to the classpath.
JAR detection from the classloader:
- ScriptDefinitionsProvider
KotlinScriptDefinition
- (ScriptDefinitionContributor outdated??), provide list of
KotlinScriptDefinition
, is an extension point
interface ScriptDefinitionContributor {
val id: String
fun getDefinitions(): List<KotlinScriptDefinition>
fun isReady() = true
companion object {
val EP_NAME: ExtensionPointName<ScriptDefinitionContributor> =
ExtensionPointName.create<ScriptDefinitionContributor>("org.jetbrains.kotlin.scriptDefinitionContributor")
inline fun <reified T> find(project: Project) =
Extensions.getArea(project).getExtensionPoint(ScriptDefinitionContributor.EP_NAME).extensions.filterIsInstance<T>().firstOrNull()
}
}