mirror of https://github.com/sbt/sbt.git
Multi-line prompt text offset issue (ticket #625)
This commit is contained in:
parent
cf355f1822
commit
f7031502e4
|
|
@ -43,13 +43,22 @@ abstract class JLine extends LineReader
|
|||
readLineDirectRaw(prompt, mask)
|
||||
private[this] def readLineDirectRaw(prompt: String, mask: Option[Char]): String =
|
||||
{
|
||||
val newprompt = handleMultilinePrompt(prompt)
|
||||
val line = mask match {
|
||||
case Some(m) => reader.readLine(prompt, m)
|
||||
case None => reader.readLine(prompt)
|
||||
case Some(m) => reader.readLine(newprompt, m)
|
||||
case None => reader.readLine(newprompt)
|
||||
}
|
||||
if (inputEof.get) null else line
|
||||
}
|
||||
|
||||
private[this] def handleMultilinePrompt(prompt: String): String = {
|
||||
var lines = """\r?\n""".r.split(prompt)
|
||||
lines.size match {
|
||||
case 0 | 1 => prompt
|
||||
case _ => reader.printString(lines.init.mkString("\n") + "\n"); lines.last;
|
||||
}
|
||||
}
|
||||
|
||||
private[this] def resume()
|
||||
{
|
||||
jline.Terminal.resetTerminal
|
||||
|
|
|
|||
Loading…
Reference in New Issue