2010-03-16 4 views
10

Je voudrais lancer une application Scala Swing à partir de la ligne de commande, puis après le démarrage de l'application, déposer dans la Scala REPL à utiliser comme interface de contrôle.Lancez Scala REPL par programme?

Idéalement, je voudrais également pré-lier certains noms de variables. Encore mieux serait d'utiliser un émulateur de terminal Java2D pour le REPL, mais je n'ai rien trouvé de mieux.

La Scala REPL dispose-t-elle d'une API publique?

Répondre

12

Vous demandez peut-être la même chose, comme this question, êtes-vous? Il y a d'autres choses que tu peux faire. Il existe un moyen de simplement appeler REPL avec un code, et d'obtenir une réponse, ce qui, selon ce que vous voulez, peut être plus approprié. Si c'est ce que vous voulez, clarifiez-le et je ferai des recherches.

Comme pour le terminal Java2D, je pense qu'il suffit d'utiliser l » setInConsole, setOut et setErr, mais je pourrais me tromper. Vous pourriez vouloir regarder comment d'autres efforts qui incorporent REPL dans l'environnement font. Je pense qu'il y en a au moins trois, mais une recherche rapide seulement Kojo, qui est basée sur Netbeans.

+2

Parfait, en appelant scala.tools.nsc.Interpreter.break (DebugParam ("i", i)) dans un thread distinct fonctionne. Merci! Je vais devoir chercher plus attentivement la prochaine fois. –

+1

@David Ok. Notez simplement que cela donne accès à votre propre programme, ce qui peut ne pas être ce que vous voulez. Si vous voulez juste un REPL, regardez comment le script scala appelle REPL, puis recherchez le code source de cette classe. –

Questions connexes