diff options
author | Paul Phillips <paulp@improving.org> | 2011-06-03 03:59:12 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-06-03 03:59:12 +0000 |
commit | 33d45626bd1b13adfd36071cf8f4d94123c7d29d (patch) | |
tree | 181265875be9495dfd43b0f72db87d8ca4c26d5f /src/compiler/scala/tools/nsc/interpreter/ReplConfig.scala | |
parent | 92a2fd5397e1c6f67677e96bbf427ab256ec37f9 (diff) | |
download | scala-33d45626bd1b13adfd36071cf8f4d94123c7d29d.tar.gz scala-33d45626bd1b13adfd36071cf8f4d94123c7d29d.tar.bz2 scala-33d45626bd1b13adfd36071cf8f4d94123c7d29d.zip |
Misc accumulated repl work.
down into more flexible pieces. No review.
Diffstat (limited to 'src/compiler/scala/tools/nsc/interpreter/ReplConfig.scala')
-rw-r--r-- | src/compiler/scala/tools/nsc/interpreter/ReplConfig.scala | 43 |
1 files changed, 17 insertions, 26 deletions
diff --git a/src/compiler/scala/tools/nsc/interpreter/ReplConfig.scala b/src/compiler/scala/tools/nsc/interpreter/ReplConfig.scala index 5c24e492cf..c4a77e9630 100644 --- a/src/compiler/scala/tools/nsc/interpreter/ReplConfig.scala +++ b/src/compiler/scala/tools/nsc/interpreter/ReplConfig.scala @@ -6,39 +6,30 @@ package scala.tools.nsc package interpreter -import sys.{ Prop, BooleanProp } - trait ReplConfig { - class ReplProps { - private def bool(name: String) = BooleanProp.keyExists(name) - - val jlineDebug = bool("scala.tools.jline.internal.Log.debug") - val jlineTrace = bool("scala.tools.jline.internal.Log.trace") - - val debug = bool("scala.repl.debug") - val trace = bool("scala.repl.trace") - val power = bool("scala.repl.power") - - val replInitCode = Prop[JFile]("scala.repl.initcode") - val powerInitCode = Prop[JFile]("scala.repl.power.initcode") - val powerBanner = Prop[JFile]("scala.repl.power.banner") - } lazy val replProps = new ReplProps - /** Debug output */ - private[nsc] def repldbg(msg: => String) = - if (isReplDebug) { - try Console println msg - catch { case x: AssertionError => Console.println("Assertion error in repldbg:\n " + x) } + class TapMaker[T](x: T) { + def tapInfo(msg: => String): T = tap(x => replinfo(parens(x))) + def tapDebug(msg: => String): T = tap(x => repldbg(parens(x))) + def tapTrace(msg: => String): T = tap(x => repltrace(parens(x))) + def tap[U](f: T => U): T = { + f(x) + x } + } - private[nsc] def repltrace(msg: => String) = - if (isReplTrace) { - try Console println msg - catch { case x: AssertionError => Console.println("Assertion error in repltrace:\n " + x) } - } + private def parens(x: Any) = "(" + x + ")" + private def echo(msg: => String) = + try Console println msg + catch { case x: AssertionError => Console.println("Assertion error printing debugging output: " + x) } + + private[nsc] def repldbg(msg: => String) = if (isReplDebug) echo(msg) + private[nsc] def repltrace(msg: => String) = if (isReplTrace) echo(msg) + private[nsc] def replinfo(msg: => String) = if (isReplInfo) echo(msg) def isReplTrace: Boolean = replProps.trace def isReplDebug: Boolean = replProps.debug || isReplTrace + def isReplInfo: Boolean = replProps.info || isReplDebug def isReplPower: Boolean = replProps.power } |