From f96c8b966874da82e5b6ea6f095bf4826bfe2c4e Mon Sep 17 00:00:00 2001 From: Eugene Yokota Date: Mon, 24 Jul 2017 22:44:18 -0400 Subject: [PATCH] InteractionService#terminalWidth Adds `def terminalWidth: Int` to InteractionService to wrap JLine 2 (or 3 in the future). Fixes #3352 --- main/src/main/scala/sbt/CommandLineUIService.scala | 6 +++++- main/src/main/scala/sbt/InteractionService.scala | 4 ++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/main/src/main/scala/sbt/CommandLineUIService.scala b/main/src/main/scala/sbt/CommandLineUIService.scala index 7f04b32c2..24f143317 100644 --- a/main/src/main/scala/sbt/CommandLineUIService.scala +++ b/main/src/main/scala/sbt/CommandLineUIService.scala @@ -1,6 +1,6 @@ package sbt -import sbt.internal.util.SimpleReader +import sbt.internal.util.{ JLine, SimpleReader } trait CommandLineUIService extends InteractionService { override def readLine(prompt: String, mask: Boolean): Option[String] = { @@ -19,6 +19,10 @@ trait CommandLineUIService extends InteractionService { case _ => false } } + + override def terminalWidth: Int = JLine.usingTerminal(_.getWidth) + + override def terminalHeight: Int = JLine.usingTerminal(_.getHeight) } object CommandLineUIService extends CommandLineUIService diff --git a/main/src/main/scala/sbt/InteractionService.scala b/main/src/main/scala/sbt/InteractionService.scala index 59ae3e187..021ede221 100644 --- a/main/src/main/scala/sbt/InteractionService.scala +++ b/main/src/main/scala/sbt/InteractionService.scala @@ -13,5 +13,9 @@ abstract class InteractionService { /** Ask the user to confirm something (yes or no) before continuing. */ def confirm(msg: String): Boolean + def terminalWidth: Int + + def terminalHeight: Int + // TODO - Ask for input with autocomplete? }