2012-06-16 10 views
6

Ich erinnere mich, es gibt irgendwo Schalter, um das Drucken von Rückgabetypen in der Scala REPL zu unterdrücken, aber ich kann es nicht finden. Ich bin besonders daran interessiert, diesen Schalter zu einer sbt-Build-Datei hinzuzufügen. So etwas wie returnTypes in console := false.Unterdrücken Rückgabetypen in sbt Konsole/Scala REPL

z. Ich habe jetzt

scala> within(Span(0, 33)) 
res7: scala.collection.immutable.IndexedSeq[(de.sciss.lucre.expr.SpanLike, scala.collection.immutable.IndexedSeq[(de.sciss.lucre.expr.Expr[de.sciss.lucre.stm.InMemory,de.sciss.lucre.expr.SpanLike], de.sciss.lucre.expr.Expr[de.sciss.lucre.stm.InMemory,Long])])] = Vector() 

und aus offensichtlichen Gründen möchte ich

scala> within(Span(0, 33)) 
res7: Vector() 

Antwort

5

Meine Frage im Grunde von this mailing-list question gespiegelt wird. Basierend auf Rex Kerr Idee, könnte folgende gehen in build.sbt:

initialCommands in console := """// helper method to disable type printing 
def shortresults[T](t: => T) = { 
    val s = t.toString 
    val name = s.takeWhile(_ != ':') 
    val idx = s.indexOf(" = ") 
    val full = if (idx >= 0) name + s.substring(idx) else s 
    val short = if (full.length>799) full.substring(0,796)+"..." else full 
    print(short) 
    t 
} 
""" 

aber leider immer noch die folgenden drei REPL entkommen Befehle manuell ausgeführt werden müssen, nachdem die Konsole installiert ist und läuft:

:power 
:wrap shortresults 
:silent 
+0

That war vor einer Weile. https://issues.scala-lang.org/browse/SI-8349 –