diff options
author | Samvel Abrahamyan <samvel1024@gmail.com> | 2019-10-09 18:02:00 +0200 |
---|---|---|
committer | Samvel Abrahamyan <samvel1024@gmail.com> | 2019-10-12 14:33:18 +0200 |
commit | ebdb22edadd30f963abc48a178f09895cee412e3 (patch) | |
tree | 2a8f9c88e3ba21e935139150adb52df4da6542fb | |
parent | 53671b9cdfc53c1edcba256b367e268be0b7357d (diff) | |
download | mill-ebdb22edadd30f963abc48a178f09895cee412e3.tar.gz mill-ebdb22edadd30f963abc48a178f09895cee412e3.tar.bz2 mill-ebdb22edadd30f963abc48a178f09895cee412e3.zip |
Remove some unnecessary dependencies from contrib.bsp, use upickle instead of play-json
-rw-r--r-- | contrib/bsp/src/mill/contrib/BSP.scala | 46 | ||||
-rw-r--r-- | contrib/bsp/src/mill/contrib/bsp/MillBuildServer.scala | 12 |
2 files changed, 23 insertions, 35 deletions
diff --git a/contrib/bsp/src/mill/contrib/BSP.scala b/contrib/bsp/src/mill/contrib/BSP.scala index ab432743..0758faf4 100644 --- a/contrib/bsp/src/mill/contrib/BSP.scala +++ b/contrib/bsp/src/mill/contrib/BSP.scala @@ -9,12 +9,22 @@ import mill._ import mill.define.{Command, Discover, ExternalModule} import mill.eval.Evaluator import org.eclipse.lsp4j.jsonrpc.Launcher -import play.api.libs.json._ import upickle.default._ import scala.collection.JavaConverters._ import scala.concurrent.CancellationException +case class BspConfigJson(name: String, + argv: Seq[String], + version: String, + bspVersion: String, + languages: Seq[String]) + extends BspConnectionDetails(name, argv.asJava, version, bspVersion, languages.asJava) { +} + +object BspConfigJson { + implicit val rw: ReadWriter[BspConfigJson] = macroRW +} object BSP extends ExternalModule { @@ -44,12 +54,12 @@ object BSP extends ExternalModule { val bspDirectory = os.pwd / ".bsp" if (!os.exists(bspDirectory)) os.makeDir.all(bspDirectory) try { - os.write(bspDirectory / "mill.json", Json.stringify(createBspConnectionJson())) + os.write(bspDirectory / "mill.json", createBspConnectionJson()) } catch { case e: FileAlreadyExistsException => println("The bsp connection json file probably exists already - will be overwritten") os.remove(bspDirectory / "mill.json") - os.write(bspDirectory / "mill.json", Json.stringify(createBspConnectionJson())) + os.write(bspDirectory / "mill.json", createBspConnectionJson()) case e: Exception => println("An exception occurred while installing mill-bsp: " + e.getMessage + " " + e.getStackTrace.toString) } @@ -57,27 +67,17 @@ object BSP extends ExternalModule { } // creates a Json with the BSP connection details - def createBspConnectionJson(): JsValue = { - - implicit val connectionWrites = new Writes[BspConnectionDetails] { - def writes(connection: BspConnectionDetails) = Json.obj( - "name" -> connection.getName, - "argv" -> new JsArray(connection.getArgv.asScala.map(string => JsString(string)).toIndexedSeq), - "version" -> connection.getVersion, - "bspVersion" -> connection.getBspVersion, - "languages" -> new JsArray(connection.getLanguages.asScala.map(string => JsString(string)).toIndexedSeq) - ) - } + def createBspConnectionJson(): String = { val millPath = scala.sys.props("MILL_CLASSPATH") - Json.toJson(new BspConnectionDetails("mill-bsp", - List(whichJava, "-DMILL_CLASSPATH=" + millPath, - s"-DMILL_VERSION=${scala.sys.props("MILL_VERSION")}", - "-Djna.nosys=true", "-cp", - millPath, - "mill.MillMain", "mill.contrib.BSP/start").asJava, - version, - bspVersion, - languages.asJava)) + write(BspConfigJson("mill-bsp", + List(whichJava, "-DMILL_CLASSPATH=" + millPath, + s"-DMILL_VERSION=${scala.sys.props("MILL_VERSION")}", + "-Djna.nosys=true", "-cp", + millPath, + "mill.MillMain", "mill.contrib.BSP/start"), + version, + bspVersion, + languages)) } // computes the path to the java executable diff --git a/contrib/bsp/src/mill/contrib/bsp/MillBuildServer.scala b/contrib/bsp/src/mill/contrib/bsp/MillBuildServer.scala index 95eb43cd..6db85c2c 100644 --- a/contrib/bsp/src/mill/contrib/bsp/MillBuildServer.scala +++ b/contrib/bsp/src/mill/contrib/bsp/MillBuildServer.scala @@ -18,8 +18,6 @@ import mill.scalalib.api.CompilationResult import mill.util.{Ctx, DummyLogger} import mill.{scalalib, _} import os.Path -import sbt.internal.util.{ConsoleOut, MainAppender, ManagedLogger} -import sbt.util.LogExchange import scala.collection.JavaConverters._ @@ -573,14 +571,4 @@ class MillBuildServer(evaluator: Evaluator, } } - // construct the ManagedLogger that will go into the compilation problems reporter - private[this] def getCompilationLogger: ManagedLogger = { - val consoleAppender = MainAppender.defaultScreen(ConsoleOut.printStreamOut( - millEvaluator.log.outputStream - )) - val l = LogExchange.logger("Hello") - LogExchange.unbindLoggerAppenders("Hello") - LogExchange.bindLoggerAppenders("Hello", (consoleAppender -> sbt.util.Level.Info) :: Nil) - l - } } |