Grand refactoring of the scripting DSL + many minor usability refactorings around it

This commit is contained in:
Ilya Chernikov
2018-07-30 17:55:13 +02:00
parent 45eaca1290
commit 74f8a541c0
41 changed files with 655 additions and 619 deletions
@@ -31,8 +31,8 @@ abstract class BasicScriptingHost(
open fun eval(
script: ScriptSource,
compileConfiguration: ScriptCompileConfiguration,
environment: ScriptEvaluationEnvironment
compileConfiguration: ScriptCompileConfiguration?,
environment: ScriptEvaluationEnvironment?
): ResultWithDiagnostics<EvaluationResult> =
runInCoroutineContext {
compiler(script, scriptDefinition, compileConfiguration).onSuccess {
@@ -7,7 +7,11 @@ package kotlin.script.experimental.host
import java.io.File
import java.net.URL
import kotlin.script.experimental.api.*
import kotlin.script.experimental.api.ScriptCompileConfiguration
import kotlin.script.experimental.api.ScriptSource
import kotlin.script.experimental.api.ScriptSourceNamedFragment
import kotlin.script.experimental.api.sourceFragments
import kotlin.script.experimental.util.getOrNull
fun ScriptSource.getScriptText(): String = when {
text != null -> text!!
@@ -16,9 +20,9 @@ fun ScriptSource.getScriptText(): String = when {
else -> throw RuntimeException("unable to get text from null script")
}
fun getMergedScriptText(script: ScriptSource, configuration: ScriptCompileConfiguration): String {
fun getMergedScriptText(script: ScriptSource, configuration: ScriptCompileConfiguration?): String {
val originalScriptText = script.getScriptText()
val sourceFragments = configuration.getOrNull(ScriptCompileConfigurationProperties.sourceFragments)
val sourceFragments = configuration?.getOrNull(ScriptCompileConfiguration.sourceFragments)
return if (sourceFragments == null || sourceFragments.isEmpty()) {
originalScriptText
} else {