Я пытаюсь создать файл конфигурации, очень похожий на сценарии сборки Gradle, но я не знаю, как оценить файл .kts, использующий DSL
. Я уже пытался использовать KotlinJsr223JvmLocalScriptEngineFactory, но этоочень некрасиво, когда дело доходит до привязки переменных, и я понятия не имею, можно ли установить контекст для чего-то другого для DSL.
Я пробовал это:
import org.jetbrains.kotlin.script.jsr223.KotlinJsr223JvmLocalScriptEngineFactory
fun main() {
val source = """
println("Hi!")
println(bindings["a"])
""".trimIndent()
val engine = KotlinJsr223JvmLocalScriptEngineFactory().scriptEngine
engine.eval(source, engine.createBindings().apply {
put("a", "b")
})
}
но это нене поддерживает многие вещи, такие как импорт по умолчанию, установка контекста this
(я не уверен, как он на самом деле называется) и хорошо.Я попытался выполнить , чтобы автоматическое завершение работало в сценариях kotlin , но это не сработало.