diff options
author | Seth Tisue <seth@tisue.net> | 2015-07-01 15:56:17 -0400 |
---|---|---|
committer | Seth Tisue <seth@tisue.net> | 2015-07-01 15:56:17 -0400 |
commit | 495fdb8119c1941bc210a9b0a186d63971002e22 (patch) | |
tree | 2067bf5985fc138577fa7251b0ab7e4a23236a88 /src/partest-extras/scala/tools | |
parent | c8fbc41631da0a860f749479a610312814c0e88f (diff) | |
parent | fac81d705ff0bfdeb3320fd9e46b6d3d34e47ddf (diff) | |
download | scala-495fdb8119c1941bc210a9b0a186d63971002e22.tar.gz scala-495fdb8119c1941bc210a9b0a186d63971002e22.tar.bz2 scala-495fdb8119c1941bc210a9b0a186d63971002e22.zip |
Merge pull request #4576 from som-snytt/issue/9206-more
SI-9206 REPL custom bits
Diffstat (limited to 'src/partest-extras/scala/tools')
-rw-r--r-- | src/partest-extras/scala/tools/partest/ReplTest.scala | 34 |
1 files changed, 19 insertions, 15 deletions
diff --git a/src/partest-extras/scala/tools/partest/ReplTest.scala b/src/partest-extras/scala/tools/partest/ReplTest.scala index 1fde2370d3..20dfe0eb16 100644 --- a/src/partest-extras/scala/tools/partest/ReplTest.scala +++ b/src/partest-extras/scala/tools/partest/ReplTest.scala @@ -6,8 +6,9 @@ package scala.tools.partest import scala.tools.nsc.Settings -import scala.tools.nsc.interpreter.ILoop +import scala.tools.nsc.interpreter.{ ILoop, replProps } import java.lang.reflect.{ Method => JMethod, Field => JField } +import scala.util.matching.Regex import scala.util.matching.Regex.Match /** A class for testing repl code. @@ -19,30 +20,33 @@ abstract class ReplTest extends DirectTest { // final because we need to enforce the existence of a couple settings. final override def settings: Settings = { val s = super.settings - // s.Yreplsync.value = true s.Xnojline.value = true transformSettings(s) } + def normalize(s: String) = s /** True for SessionTest to preserve session text. */ def inSession: Boolean = false - /** True to preserve welcome text. */ + /** True to preserve welcome header, eliding version number. */ def welcoming: Boolean = false - lazy val welcome = "(Welcome to Scala) version .*".r - def normalize(s: String) = s match { - case welcome(w) => w - case s => s - } - def unwelcoming(s: String) = s match { - case welcome(w) => false - case _ => true - } + lazy val header = replProps.welcome def eval() = { val s = settings log("eval(): settings = " + s) - //ILoop.runForTranscript(code, s).lines drop 1 // not always first line val lines = ILoop.runForTranscript(code, s, inSession = inSession).lines - if (welcoming) lines map normalize - else lines filter unwelcoming + (if (welcoming) { + val welcome = "(Welcome to Scala).*".r + //val welcome = Regex.quote(header.lines.next).r + //val version = "(.*version).*".r // version on separate line? + //var inHead = false + lines map { + //case s @ welcome() => inHead = true ; s + //case version(s) if inHead => inHead = false ; s + case welcome(s) => s + case s => s + } + } else { + lines drop header.lines.size + }) map normalize } def show() = eval() foreach println } |