diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index 4fd8d1585..721e08914 100755 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -1366,12 +1366,13 @@ object Defaults extends BuildCommon { (compilers in task).value.scalac match { case ac: AnalyzingCompiler => ac.onArgs(exported(s, "scala")) } - (new Console(compiler))(cpFiles, - (scalacOptions in task).value, - loader, - (initialCommands in task).value, - (cleanupCommands in task).value)()(s.log).get - println() + val sc = (scalacOptions in task).value + val ic = (initialCommands in task).value + val cc = (cleanupCommands in task).value + JLine.usingTerminal { _ => + (new Console(compiler))(cpFiles, sc, loader, ic, cc)()(s.log).get + println() + } } private[this] def exported(w: PrintWriter, command: String): Seq[String] => Unit = diff --git a/main/src/main/scala/sbt/internal/ConsoleProject.scala b/main/src/main/scala/sbt/internal/ConsoleProject.scala index bc3756460..c2e2edef2 100644 --- a/main/src/main/scala/sbt/internal/ConsoleProject.scala +++ b/main/src/main/scala/sbt/internal/ConsoleProject.scala @@ -9,6 +9,7 @@ package sbt package internal import sbt.util.Logger +import sbt.internal.util.JLine import sbt.internal.inc.{ ScalaInstance, ZincUtil } import xsbti.compile.ClasspathOptionsUtil @@ -42,13 +43,17 @@ object ConsoleProject { val imports = BuildUtil.getImports(unit.unit) ++ BuildUtil.importAll(bindings.map(_._1)) val importString = imports.mkString("", ";\n", ";\n\n") val initCommands = importString + extra - // TODO - Hook up dsl classpath correctly... - (new Console(compiler))( - unit.classpath, - options, - initCommands, - cleanupCommands - )(Some(unit.loader), bindings) + + JLine.usingTerminal { _ => + // TODO - Hook up dsl classpath correctly... + (new Console(compiler))( + unit.classpath, + options, + initCommands, + cleanupCommands + )(Some(unit.loader), bindings) + } + () } /** Conveniences for consoleProject that shouldn't normally be used for builds. */ diff --git a/notes/1.1.1/console_jline.md b/notes/1.1.1/console_jline.md new file mode 100644 index 000000000..fd851ce16 --- /dev/null +++ b/notes/1.1.1/console_jline.md @@ -0,0 +1,13 @@ + [@eed3si9n]: https://github.com/eed3si9n + + [3841]: https://github.com/sbt/sbt/issues/3841 + [3876]: https://github.com/sbt/sbt/pull/3876 + +### Fixes with compatibility implications + +### Improvements + + +### Bug fixes + +- Fixes tab completion in `console` while running in batch mode as `sbt console`. [#3841][3841]/[#3876][3876] by [@eed3si9n][@eed3si9n] diff --git a/notes/1.0.2/sample.md b/notes/1.1.1/sample.md similarity index 100% rename from notes/1.0.2/sample.md rename to notes/1.1.1/sample.md