2010-03-16 15 views
10

Me gustaría lanzar una aplicación Scala Swing desde la línea de comandos, luego de iniciar la aplicación, colocar en Scala REPL para utilizarla como interfaz de control.¿Iniciar Scala REPL mediante programación?

Idealmente, también me gustaría enlazar previamente algunos nombres de variables. Aún mejor sería usar un emulador de terminal Java2D para REPL, pero no pude encontrar nada apropiado.

¿El Scala REPL tiene una API pública?

Respuesta

12

Usted puede estar preguntando acerca de lo mismo, como this question, ¿verdad? Hay otras cosas que puedes hacer. Hay una manera de simplemente llamar a REPL con un código y obtener una respuesta que, dependiendo de lo que desee, puede ser más apropiado. Si eso es lo que quieres, simplemente acláralo y lo investigaré.

En cuanto a la terminal Java2D, creo que es suficiente para el uso Console 's setIn, setOut y setErr, pero puedo estar equivocado. Es posible que desee ver cómo lo hacen algunos otros esfuerzos que incorporan REPL en el entorno. Creo que hay al menos tres de ellos, pero una búsqueda rápida solo Kojo, que se basa en Netbeans.

+2

Perfecto, se llama a scala.tools.nsc.Interpreter.break (DebugParam ("i", i)) en un subproceso independiente. ¡Gracias! Tendré que buscar más cuidadosamente la próxima vez. –

+1

@David Ok. Solo tenga en cuenta que esto le da acceso a su propio programa, que podría no ser lo que usted desea. Si solo quieres un REPL, mira cómo el script scala invoca a REPL, y luego busca ese código fuente de clase. –

Cuestiones relacionadas