summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamvel Abrahamyan <samvel1024@gmail.com>2019-10-09 18:02:00 +0200
committerSamvel Abrahamyan <samvel1024@gmail.com>2019-10-12 14:33:18 +0200
commitebdb22edadd30f963abc48a178f09895cee412e3 (patch)
tree2a8f9c88e3ba21e935139150adb52df4da6542fb
parent53671b9cdfc53c1edcba256b367e268be0b7357d (diff)
downloadmill-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.scala46
-rw-r--r--contrib/bsp/src/mill/contrib/bsp/MillBuildServer.scala12
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
- }
}