From f4d181de2211e27807b36329d7266b8e8d340c53 Mon Sep 17 00:00:00 2001 From: Adrien Piquerez Date: Mon, 11 Jan 2021 14:37:46 +0100 Subject: [PATCH] Add --sb-launch-jar in bsp connection details --- .../scala/sbt/internal/bsp/BuildServerConnection.scala | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/protocol/src/main/scala/sbt/internal/bsp/BuildServerConnection.scala b/protocol/src/main/scala/sbt/internal/bsp/BuildServerConnection.scala index 0bfb058b5..9c4e55c83 100644 --- a/protocol/src/main/scala/sbt/internal/bsp/BuildServerConnection.scala +++ b/protocol/src/main/scala/sbt/internal/bsp/BuildServerConnection.scala @@ -18,11 +18,16 @@ object BuildServerConnection { final val bspVersion = "2.0.0-M5" final val languages = Vector("scala") + private final val SbtLaunchJar = "sbt-launch(-.*)?\\.jar".r + private[sbt] def writeConnectionFile(sbtVersion: String, baseDir: File): Unit = { import bsp.codec.JsonProtocol._ val bspConnectionFile = new File(baseDir, ".bsp/sbt.json") val javaHome = System.getProperty("java.home") val classPath = System.getProperty("java.class.path") + val sbtLaunchJar = classPath + .split(File.pathSeparator) + .find(jar => SbtLaunchJar.findFirstIn(jar).nonEmpty) val argv = Vector( s"$javaHome/bin/java", @@ -32,7 +37,7 @@ object BuildServerConnection { classPath, "xsbt.boot.Boot", "-bsp" - ) + ) ++ sbtLaunchJar.map(jar => s"--sbt-launch-jar=$jar") val details = BspConnectionDetails(name, sbtVersion, bspVersion, languages, argv) val json = Converter.toJson(details).get IO.write(bspConnectionFile, CompactPrinter(json), append = false)