blob: 195d9aabb81b2f1e69bfd6120651e249d9c12378 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
package mill.contrib.bsp
import ch.epfl.scala.bsp4j._
import mill.api.Logger
import mill.util.ProxyLogger
class MillBspLogger(client: BuildClient, taskId: Int, logger: Logger) extends ProxyLogger(logger) {
override def ticker(s: String): Unit = {
try {
val progressString = s.split(" ")(0)
val progress = progressString.substring(1, progressString.length - 1).split("/")
val params = new TaskProgressParams(new TaskId(taskId.toString))
params.setEventTime(System.currentTimeMillis())
params.setMessage(s)
params.setUnit(s.split(" ")(1))
params.setProgress(progress(0).toLong)
params.setTotal(progress(1).toLong)
client.onBuildTaskProgress(params)
} catch {
case e: Exception =>
}
}
override def error(s: String): Unit = {
super.error(s)
client.onBuildShowMessage(new ShowMessageParams(MessageType.ERROR, s))
}
override def info(s: String): Unit = {
super.info(s)
client.onBuildShowMessage(new ShowMessageParams(MessageType.INFORMATION, s))
}
override def debug(s: String): Unit = {
super.debug(s)
client.onBuildShowMessage(new ShowMessageParams(MessageType.LOG, s))
}
}
|