aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/printing/SyntaxHighlighting.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/dotty/tools/dotc/printing/SyntaxHighlighting.scala')
-rw-r--r--src/dotty/tools/dotc/printing/SyntaxHighlighting.scala13
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