2012-06-16 19 views
6

Recuerdo que hay un interruptor en algún lugar para suprimir la impresión de tipos de devolución en Scala REPL, pero no puedo encontrarlo. Estoy particularmente interesado en agregar este modificador a un archivo de compilación sbt. Algo así como returnTypes in console := false.Suprimir los tipos de devolución en la consola sbt/Scala REPL

E.g. ahora tengo

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() 

y por razones obvias Quiero

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

Respuesta

5

Mi pregunta es básicamente refleja en this mailing-list question. Basado en la idea de Rex Kerr, la siguiente podría entrar en 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 
} 
""" 

Pero, por desgracia, sigue los siguientes tres REPL escapar comandos deben ejecutarse manualmente después de la consola está en marcha:

:power 
:wrap shortresults 
:silent 
+0

Eso fue hace un tiempo. https://issues.scala-lang.org/browse/SI-8349 –

Cuestiones relacionadas