2010-03-16 2 views
10

Я хотел бы запустить приложение Scala Swing из командной строки, а затем после запуска приложения перейдите в Scala REPL для использования в качестве интерфейса управления.Запустить Scala REPL программно?

В идеале я также хотел бы предварительно связать имена переменных. Еще лучше использовать эмулятор терминала Java2D для REPL, но я не нашел ничего подходящего.

Есть ли у Scala REPL открытый API?

ответ

12

Возможно, вы спрашиваете о том же, что и this question, не так ли? Есть и другие вещи, которые вы можете сделать. Есть способ просто позвонить REPL с кодом и получить ответ, который, в зависимости от того, что вы хотите, может быть более уместным. Если это то, что вы хотите, просто уточните это, и я буду исследовать его.

Что касается Java2D терминала, я думаю, что это достаточно, чтобы использовать Console «s setIn, setOut и setErr, но я могу ошибаться. Возможно, вам захочется взглянуть на то, как другие усилия, которые вставляют REPL в окружающую среду. Я думаю, что их, по крайней мере, три, но быстрый поиск только Kojo, который основан на Netbeans.

+2

Отлично, вызывая scala.tools.nsc.Interpreter.break (DebugParam («i», i)) в отдельном потоке. Благодаря! В следующий раз мне придется искать более внимательно. –

+1

@ Давид Хорошо. Просто обратите внимание, что это дает доступ к вашей собственной программе, которая может быть не такой, какой вы хотите. Если вы просто хотите REPL, посмотрите, как скрипт scala вызывает REPL, а затем ищет исходный код этого класса. –

Смежные вопросы