tags:

views:

139

answers:

1

I would like to launch a Scala Swing application from the command line, then after the application is started, drop into the Scala REPL to use as a control interface.

Ideally I would also like to pre-bind some variable names. Even better would be using a Java2D terminal emulator for the REPL, but I couldn't find anything appropriate.

Does the Scala REPL have a public API?

+8  A: 

You are may be asking about the same thing, as this question, are you? There is other stuff you can do. There's a way to just call REPL with a code, and get an answer back, which, depending on what you want, may be more appropriate. If that's what you want, just clarify it and I'll research into it.

As for Java2D terminal, I think it is enough to use Console's setIn, setOut and setErr, but I might be mistaken. You might want to take a look at how some other efforts which embed REPL in the environment do. I think there are at least three of them, but a quick search only Kojo, which is based on Netbeans.

Daniel
Perfect, calling scala.tools.nsc.Interpreter.break(DebugParam("i",i)) in a separate thread works. Thanks! I'll have to search more carefully next time.
David Crawshaw
@David Ok. Just note that this gives access to your own program, which might not be what you want. If you just want a REPL, look at how the scala script invokes REPL, and then look up that class source code.
Daniel