summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/interpreter/ReplConfig.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-06-03 03:59:12 +0000
committerPaul Phillips <paulp@improving.org>2011-06-03 03:59:12 +0000
commit33d45626bd1b13adfd36071cf8f4d94123c7d29d (patch)
tree181265875be9495dfd43b0f72db87d8ca4c26d5f /src/compiler/scala/tools/nsc/interpreter/ReplConfig.scala
parent92a2fd5397e1c6f67677e96bbf427ab256ec37f9 (diff)
downloadscala-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.scala43
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
}