From de1b5ee9eaff469f3b0e11d20d7fed31a13ba4e1 Mon Sep 17 00:00:00 2001 From: eugene yokota Date: Wed, 10 Jun 2026 21:23:11 -0400 Subject: [PATCH] [2.x] fix: Fixes console / javaOptions (#9324) **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 033f0a358..5ee9a1d19 100644 --- a/main/src/main/scala/sbt/Defaults.scala +++ b/main/src/main/scala/sbt/Defaults.scala @@ -1109,6 +1109,8 @@ object Defaults extends BuildCommon { 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 2894af759..ef898b095 100644 --- a/main/src/main/scala/sbt/internal/Compiler.scala +++ b/main/src/main/scala/sbt/internal/Compiler.scala @@ -424,12 +424,13 @@ object Compiler: s"""{ "jsonrpc": "2.0", "method": "$method", "params": $params, "id": $id }""" 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", )