Provide a method to update script definitions after loading into IDE

also documenting ScriptDefinitionsProvider
This commit is contained in:
Ilya Chernikov
2020-05-14 14:51:54 +02:00
parent 4b032a14af
commit d92e4d28f5
3 changed files with 62 additions and 14 deletions
@@ -178,14 +178,10 @@ abstract class ScriptDefinition : UserDataHolderBase() {
override val evaluationConfiguration: ScriptEvaluationConfiguration?
) : FromConfigurationsBase()
open class FromTemplate(
open class FromNewDefinition(
private val baseHostConfiguration: ScriptingHostConfiguration,
template: KClass<*>,
contextClass: KClass<*> = ScriptCompilationConfiguration::class
private val definition: kotlin.script.experimental.host.ScriptDefinition
) : FromConfigurationsBase() {
private val definition = createScriptDefinitionFromTemplate(KotlinType(template), baseHostConfiguration, contextClass)
override val hostConfiguration: ScriptingHostConfiguration
get() = definition.compilationConfiguration[ScriptCompilationConfiguration.hostConfiguration] ?: baseHostConfiguration
@@ -193,6 +189,15 @@ abstract class ScriptDefinition : UserDataHolderBase() {
override val evaluationConfiguration: ScriptEvaluationConfiguration get() = definition.evaluationConfiguration
}
open class FromTemplate(
baseHostConfiguration: ScriptingHostConfiguration,
template: KClass<*>,
contextClass: KClass<*> = ScriptCompilationConfiguration::class
) : FromNewDefinition(
baseHostConfiguration,
createScriptDefinitionFromTemplate(KotlinType(template), baseHostConfiguration, contextClass)
)
companion object {
fun getDefault(hostConfiguration: ScriptingHostConfiguration) =
object : FromLegacy(hostConfiguration, StandardScriptDefinition) {