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()
}
}