diff options
Diffstat (limited to 'src/dotty/tools/dotc/printing/SyntaxHighlighting.scala')
-rw-r--r-- | src/dotty/tools/dotc/printing/SyntaxHighlighting.scala | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/printing/SyntaxHighlighting.scala b/src/dotty/tools/dotc/printing/SyntaxHighlighting.scala index d94f6796d..95e59ccf3 100644 --- a/src/dotty/tools/dotc/printing/SyntaxHighlighting.scala +++ b/src/dotty/tools/dotc/printing/SyntaxHighlighting.scala @@ -6,14 +6,23 @@ import parsing.Tokens._ import scala.annotation.switch import scala.collection.mutable.StringBuilder import core.Contexts.Context +import Highlighting.{Highlight, HighlightBuffer} /** This object provides functions for syntax highlighting in the REPL */ object SyntaxHighlighting { implicit class SyntaxFormatting(val sc: StringContext) extends AnyVal { def hl(args: Any*)(implicit ctx: Context): String = - if (ctx.settings.color.value == "never") sc.s(args: _*) - else sc.s(args.map(x => new String(apply(x.toString).toArray)): _*) + sc.s(args.map ({ + case hl: Highlight => + hl.show + case hb: HighlightBuffer => + hb.toString + case x if ctx.settings.color.value != "never" => + new String(apply(x.toString).toArray) + case x => + x.toString + }): _*) } val NoColor = Console.RESET |