2013-03-07 20 views
9

Scala REPL istemini değiştirmek istiyorum. Aşağıdaki gibi güç modunda komut istemini değiştirebileceğimi öğrendim.Scala REPL istemini programlı olarak değiştirmek mümkün mü?

scala> 

scala> :power 
** Power User mode enabled - BEEP WHIR GYVE ** 
** :phase has been set to 'typer'.   ** 
** scala.tools.nsc._ has been imported  ** 
** global._, definitions._ also imported ** 
** Try :help, :vals, power.<tab>   ** 

scala> repl.setPrompt("\ncool prompt!> ") 

cool prompt!> 

Şimdi normal modda veya sbt konsolunun initialCommands bunu yapmak istiyorum. Bunu yapmayı bilen var mı?

+2

Bilginize http://www.scala-sbt.org/release/docs/Howto/interactive.html#prompt –

+1

teşekkürler ama ne değiştirmek istiyorum istemi Scala REPL ve sbt interaktif kabuk istemi değil. – tototoshi

+0

@totoshi Üzgünüm, sorunuzu sbt konsol bölümünde yanlış anladım. –

cevap

8

Scala 2.10.0

$intp.asInstanceOf[scala.tools.nsc.interpreter.ILoop$ILoopInterpreter] 
    .getClass 
    .getDeclaredField("$outer").get($intp) 
    .asInstanceOf[scala.tools.nsc.interpreter.ILoop] 
    .setPrompt("\ncool prompt!> ") 
+0

Vay! İşe yarıyor! Teşekkürler. – tototoshi

+0

Bu kod, REPL başlatıldıktan sonra iyi çalışır, ancak sbt konsolunun ilkCommands'ına eklediğimde derlenemez. REPL tam olarak başlatılmadan önce $ intp değeri görülemez. $ Intp değerine erişmenin başka bir yolu var mı? Güzel kod düzeni için – tototoshi

+0

+1! –

İlgili konular