diff --git a/internal/util-logging/src/main/scala/sbt/internal/util/ConsoleAppender.scala b/internal/util-logging/src/main/scala/sbt/internal/util/ConsoleAppender.scala index 84af63381..d7b8fadc1 100644 --- a/internal/util-logging/src/main/scala/sbt/internal/util/ConsoleAppender.scala +++ b/internal/util-logging/src/main/scala/sbt/internal/util/ConsoleAppender.scala @@ -106,6 +106,7 @@ object ConsoleAppender { private[sbt] def cursorUp(n: Int): String = s"\u001B[${n}A" private[sbt] def cursorDown(n: Int): String = s"\u001B[${n}B" private[sbt] def scrollUp(n: Int): String = s"\u001B[${n}S" + private[sbt] def clearScreen(n: Int): String = s"\u001B[${n}J" private[sbt] final val DeleteLine = "\u001B[2K" private[sbt] final val CursorLeft1000 = "\u001B[1000D" private[sbt] final val CursorDown1 = cursorDown(1) diff --git a/main-command/src/main/scala/sbt/internal/ConsoleChannel.scala b/main-command/src/main/scala/sbt/internal/ConsoleChannel.scala index f18fa2981..d45dce4cb 100644 --- a/main-command/src/main/scala/sbt/internal/ConsoleChannel.scala +++ b/main-command/src/main/scala/sbt/internal/ConsoleChannel.scala @@ -23,7 +23,9 @@ private[sbt] final class ConsoleChannel(val name: String) extends CommandChannel val history = (s get historyPath) getOrElse (new File(s.baseDir, ".history")).some val prompt = (s get shellPrompt) match { case Some(pf) => pf(s) - case None => "> " + case None => + def ansi(s: String): String = if (ConsoleAppender.formatEnabledInEnv) s"$s" else "" + s"${ansi(ConsoleAppender.DeleteLine)}> ${ansi(ConsoleAppender.clearScreen(0))}" } val reader = new FullReader(history, s.combinedParser, JLine.HandleCONT, Terminal.throwOnClosedSystemIn)