Peut-être que l'idée est que vous devriez juste travailler avec la ILoop
directement ? Pour autant que je sache, ça ne devrait pas être beaucoup plus complexe que :
// insert the code below wherever you want a REPL
val repl = new ILoop
repl.settings = new Settings
repl.in = SimpleReader()
repl.createInterpreter()
// bind any local variables that you want to have access to
repl.intp.bind("i", "Int", i)
repl.intp.bind("e", "Exception", e)
// start the interpreter and then close it after you :quit
repl.loop()
repl.closeInterpreter()
Par rapport à l'ancien breakIf
cette approche permet d'éliminer un niveau supplémentaire d'indirection à la fois pour l'API if
(qui a été enveloppé dans une => Boolean
) et le DebugParam
/ NamedParam
(qui étaient des enveloppes temporaires utilisées uniquement pour remplir le champ bind
arguments).
Cette approche vous permet également de spécifier votre Settings
au besoin. Par exemple, certains bogues de REPL peuvent être contournés avec -Yrepl-sync
pero break
ne vous donne aucun moyen de spécifier que .