From 74ff1b0a4a96cf4c5aee23a8fdcc2107ca0d1940 Mon Sep 17 00:00:00 2001 From: Adrien Piquerez Date: Thu, 24 Jun 2021 16:26:16 +0200 Subject: [PATCH] Fill error message when BSP task fails --- main/src/main/scala/sbt/EvaluateTask.scala | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/main/src/main/scala/sbt/EvaluateTask.scala b/main/src/main/scala/sbt/EvaluateTask.scala index 6a793ba10..3557b6b30 100644 --- a/main/src/main/scala/sbt/EvaluateTask.scala +++ b/main/src/main/scala/sbt/EvaluateTask.scala @@ -9,7 +9,6 @@ package sbt import java.io.File import java.util.concurrent.atomic.AtomicReference - import sbt.Def.{ ScopedKey, Setting, dummyState } import sbt.Keys.{ TaskProgress => _, name => _, _ } import sbt.Project.richInitializeTask @@ -18,10 +17,12 @@ import sbt.SlashSyntax0._ import sbt.internal.Aggregation.KeyValue import sbt.internal.TaskName._ import sbt.internal._ +import sbt.internal.langserver.ErrorCodes import sbt.internal.util.{ Terminal => ITerminal, _ } import sbt.librarymanagement.{ Resolver, UpdateReport } import sbt.std.Transform.DummyTaskMap import sbt.util.{ Logger, Show } +import sbt.BuildSyntax._ import scala.annotation.nowarn import scala.Console.RED @@ -367,11 +368,13 @@ object EvaluateTask { } } - for ((key, msg, ex) <- keyed if (msg.isDefined || ex.isDefined)) { + for ((key, msg, ex) <- keyed if msg.isDefined || ex.isDefined) { val msgString = (msg.toList ++ ex.toList.map(ErrorHandling.reducedToString)).mkString("\n\t") val log = getStreams(key, streams).log val display = contextDisplay(state, ITerminal.isColorEnabled) - log.error("(" + display.show(key) + ") " + msgString) + val errorMessage = "(" + display.show(key) + ") " + msgString + state.respondError(ErrorCodes.InternalError, errorMessage) + log.error(errorMessage) } }