summaryrefslogtreecommitdiff
path: root/src/repl/scala/tools/nsc/interpreter/ReplProps.scala
diff options
context:
space:
mode:
authorSom Snytt <som.snytt@gmail.com>2015-06-22 22:39:36 -0700
committerSom Snytt <som.snytt@gmail.com>2015-06-23 15:52:44 -0700
commiteab44dd09223974c7515a2413bc461ee3808d682 (patch)
tree290ac11a90e616b67a09a15ebc100174dfaee57d /src/repl/scala/tools/nsc/interpreter/ReplProps.scala
parent2ceb09c1a51694d1a17378ee8833154aa59b6c58 (diff)
downloadscala-eab44dd09223974c7515a2413bc461ee3808d682.tar.gz
scala-eab44dd09223974c7515a2413bc461ee3808d682.tar.bz2
scala-eab44dd09223974c7515a2413bc461ee3808d682.zip
SI-9206 REPL custom continuation prompt
Because who doesn't want to customize their continuation prompt? `scala -Dscala.repl.continue="..."` looks especially nice with `-Dscala.color`. Somewhat works when pasting, but the test rig for running a transcript does not seek to support custom secondary prompts.
Diffstat (limited to 'src/repl/scala/tools/nsc/interpreter/ReplProps.scala')
-rw-r--r--src/repl/scala/tools/nsc/interpreter/ReplProps.scala14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/repl/scala/tools/nsc/interpreter/ReplProps.scala b/src/repl/scala/tools/nsc/interpreter/ReplProps.scala
index 8fac040a5e..c2da1f6eca 100644
--- a/src/repl/scala/tools/nsc/interpreter/ReplProps.scala
+++ b/src/repl/scala/tools/nsc/interpreter/ReplProps.scala
@@ -45,11 +45,17 @@ class ReplProps {
// Handy system prop for shell prompt, or else pick it up from compiler.properties
val promptString = Prop[String]("scala.repl.prompt").option getOrElse (if (info) "%nscala %s> " else shellPromptString)
- def promptText = enversion(promptString)
- val prompt = {
- import scala.io.AnsiColor.{ MAGENTA, RESET }
- if (colorOk) s"$MAGENTA$promptText$RESET" else promptText
+ val promptText = enversion(promptString)
+ val prompt = encolor(promptText)
+
+ // Prompt for continued input, will be right-adjusted to width of the primary prompt
+ val continueString = Prop[String]("scala.repl.continue").option getOrElse "| "
+ val continueText = {
+ val text = enversion(continueString)
+ val margin = promptText.lines.toList.last.length - text.length
+ if (margin > 0) " " * margin + text else text
}
+ val continuePrompt = encolor(continueText)
//def welcome = enversion(Prop[String]("scala.repl.welcome") or shellWelcomeString)
def welcome = enversion {