diff --git a/mdoc/src/main/scala/mdoc/internal/io/ConsoleReporter.scala b/mdoc/src/main/scala/mdoc/internal/io/ConsoleReporter.scala index 6daffddcb..3b28331ad 100644 --- a/mdoc/src/main/scala/mdoc/internal/io/ConsoleReporter.scala +++ b/mdoc/src/main/scala/mdoc/internal/io/ConsoleReporter.scala @@ -1,11 +1,14 @@ package mdoc.internal.io +import coursierapi.Logger +import fansi.ErrorMode +import fansi.Str +import mdoc.Reporter +import mdoc.internal.pos.PositionSyntax._ + import java.io.PrintStream import java.util.concurrent.atomic.AtomicBoolean import scala.meta.Position -import mdoc.Reporter -import mdoc.internal.pos.PositionSyntax._ -import coursierapi.Logger class ConsoleReporter( ps: PrintStream, @@ -49,24 +52,24 @@ class ConsoleReporter( } def error(msg: String): Unit = { myErrors += 1 - ps.println(myError ++ s": $msg") + ps.println(myError ++ Str(s": $msg", ErrorMode.Strip)) } def warning(pos: Position, msg: String): Unit = { warning(formatMessage(pos.toUnslicedPosition, "warning", msg)) } def warning(msg: String): Unit = { myWarnings += 1 - ps.println(myWarning ++ s": $msg") + ps.println(myWarning ++ Str(s": $msg", ErrorMode.Strip)) } def info(pos: Position, msg: String): Unit = { info(formatMessage(pos.toUnslicedPosition, "info", msg)) } def info(msg: String): Unit = { - ps.println(myInfo ++ s": $msg") + ps.println(myInfo ++ Str(s": $msg", ErrorMode.Strip)) } def debug(msg: => String): Unit = { if (isDebugEnabled.get()) { - ps.println(myDebug ++ s": $msg") + ps.println(myDebug ++ Str(s": $msg", ErrorMode.Strip)) } } diff --git a/tests/unit/src/main/scala/tests/cli/CliSuite.scala b/tests/unit/src/test/scala/tests/cli/CliSuite.scala similarity index 87% rename from tests/unit/src/main/scala/tests/cli/CliSuite.scala rename to tests/unit/src/test/scala/tests/cli/CliSuite.scala index bcbf74474..cf24c1e8d 100644 --- a/tests/unit/src/main/scala/tests/cli/CliSuite.scala +++ b/tests/unit/src/test/scala/tests/cli/CliSuite.scala @@ -3,6 +3,7 @@ package tests.cli import java.nio.file.Files import scala.meta.io.AbsolutePath import java.nio.file.Paths +import tests.markdown.Compat class CliSuite extends BaseCliSuite { @@ -25,6 +26,43 @@ class CliSuite extends BaseCliSuite { """.stripMargin ) + if (!Compat.isScala212) + checkCli( + "fansi-error", + s""" + |/index.md + |```scala mdoc + |val a : "\u001b[2m" = "" + |``` + """.stripMargin, + "".stripMargin, + expectedExitCode = 1, + onStdout = { out => + if (Compat.isScala3) + assertNoDiff( + out, + """|info: Compiling 1 file to + |error: index.md:2:18: + |Found: ("" : String) + |Required: ("/u001b[2m" : String) + |val a : "" = "" + | ^^ + |""".stripMargin + ) + else + assertNoDiff( + out, + """|info: Compiling 1 file to + |error: index.md:2:18: type mismatch; + | found : String("") + | required: "/u001B[2m" + |val a : "" = "" + | ^^ + |""".stripMargin + ) + } + ) + checkCli( "classpath", """