How to use the Kts ScriptEngine in an IntelliJ IDEA plugin?

Answered
object KtsUtil {

private val engine = IdeScriptEngineManager.getInstance().getEngineByName("kotlin", null)!!

fun invokeFunction(kts: String, function: String): Any {
engine.eval(kts)
val invoke = engine as Invocable
return invoke.invokeFunction(function)
}

}
 
 
com.intellij.ide.script.IdeScriptException: javax.script.ScriptException: ERROR Unable to initialize repl compiler:
  DEBUG Using JVM IR backend
  WARNING Using new faster version of JAR FS: it should make your build faster, but the new implementation is experimental
  ERROR Error while reading 'E:\environment\gradle\gradle-7.5.1\caches\modules-2\files-2.1\com.jetbrains.intellij.idea\ideaIC\2023.1\79ab2d2970b44e4c36be667e173da87c982a9814\ideaIC-2023.1\lib\app.jar': java.lang.IndexOutOfBoundsException: java.lang.IllegalStateException: Error while reading 'E:\environment\gradle\gradle-7.5.1\caches\modules-2\files-2.1\com.jetbrains.intellij.idea\ideaIC\2023.1\79ab2d2970b44e4c36be667e173da87c982a9814\ideaIC-2023.1\lib\app.jar': java.lang.IndexOutOfBoundsException: java.lang.IllegalStateException: Unable to initialize repl compiler:
  DEBUG Using JVM IR backend
  WARNING Using new faster version of JAR FS: it should make your build faster, but the new implementation is experimental
  ERROR Error while reading 'E:\environment\gradle\gradle-7.5.1\caches\modules-2\files-2.1\com.jetbrains.intellij.idea\ideaIC\2023.1\79ab2d2970b44e4c36be667e173da87c982a9814\ideaIC-2023.1\lib\app.jar': java.lang.IndexOutOfBoundsException: java.lang.IllegalStateException: Error while reading 'E:\environment\gradle\gradle-7.5.1\caches\modules-2\files-2.1\com.jetbrains.intellij.idea\ideaIC\2023.1\79ab2d2970b44e4c36be667e173da87c982a9814\ideaIC-2023.1\lib\app.jar': java.lang.IndexOutOfBoundsException
    at com.intellij.ide.script.IdeScriptEngineManagerImpl$EngineImpl.lambda$eval$1(IdeScriptEngineManagerImpl.java:249)
 
0
2 comments

Have you checked what engines are available for you?

IdeScriptEngineManager.getInstance().getLanguages()
0

We have the kt engine in here

0

Please sign in to leave a comment.