From bb981d7e02c8c2c1e4dd4928454887ac0e47a990 Mon Sep 17 00:00:00 2001 From: eugene yokota Date: Wed, 10 Jun 2026 12:23:43 -0400 Subject: [PATCH] [2.x] fix: Fixes console / javaOptions (#9322) **Problem** console / javaOptions is ignored. **Solution** 1. This enables forked console even for sbt --server mode. 2. This includes console / javaOptions to the forkOptions. --- main/src/main/scala/sbt/Defaults.scala | 2 ++ main/src/main/scala/sbt/internal/Compiler.scala | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/main/src/main/scala/sbt/Defaults.scala b/main/src/main/scala/sbt/Defaults.scala index 1740013be..9a7b8b90d 100644 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -1121,6 +1121,8 @@ object Defaults extends BuildCommon with DefExtra { Compiler.toConsoleScalacOptions(scalacOptions.value) }, console / forkOptions := Def.uncached(Compiler.consoleForkOptions.value), + // fork when sbt is launched with --server + console / fork := true, collectAnalyses := Definition.collectAnalysesTask.map(_ => ()).value, consoleQuick := consoleQuickTask.value, consoleQuick / scalacOptions := Def.uncached { diff --git a/main/src/main/scala/sbt/internal/Compiler.scala b/main/src/main/scala/sbt/internal/Compiler.scala index e0e443828..020f9e7bc 100644 --- a/main/src/main/scala/sbt/internal/Compiler.scala +++ b/main/src/main/scala/sbt/internal/Compiler.scala @@ -616,12 +616,13 @@ object Compiler: } def consoleForkOptions: Def.Initialize[Task[ForkOptions]] = Def.task { + val jo = (Keys.console / Keys.javaOptions).value.toVector // Build environment variables for proper terminal handling val termEnv = sys.env.get("TERM").getOrElse("xterm-256color") ForkOptions() .withConnectInput(true) .withRunJVMOptions( - Vector( + jo ++ Vector( s"-Dorg.jline.terminal.type=$termEnv", "-Djline.terminal=auto", )