aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2016-09-16 22:05:14 +0200
committerFelix Mulder <felix.mulder@gmail.com>2016-10-10 13:25:33 +0200
commit15dfb56d63a893c5c1e34a8566004085a617c28b (patch)
tree64feb75d25b18e58642df914bd4066071b497d21 /src/dotty/tools/dotc
parent2764609bb17dfc8691d33fcc1c70a9891af59e70 (diff)
downloaddotty-15dfb56d63a893c5c1e34a8566004085a617c28b.tar.gz
dotty-15dfb56d63a893c5c1e34a8566004085a617c28b.tar.bz2
dotty-15dfb56d63a893c5c1e34a8566004085a617c28b.zip
Add coloring util
Diffstat (limited to 'src/dotty/tools/dotc')
-rw-r--r--src/dotty/tools/dotc/printing/Highlighting.scala60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/printing/Highlighting.scala b/src/dotty/tools/dotc/printing/Highlighting.scala
new file mode 100644
index 000000000..a496976a1
--- /dev/null
+++ b/src/dotty/tools/dotc/printing/Highlighting.scala
@@ -0,0 +1,60 @@
+package dotty.tools
+package dotc
+package printing
+
+import scala.collection.mutable
+
+object Highlighting {
+
+ implicit def colorToString(c: Color): String = c.toString
+ implicit def cbufToString(cb: ColorBuffer): String = cb.toString
+
+ abstract class Color(private val color: String) {
+ def text: String
+
+ override def toString = color + text + Console.RESET
+
+ def +(other: Color): ColorBuffer =
+ new ColorBuffer(this) + other
+
+ def +(other: String): ColorBuffer =
+ new ColorBuffer(this) + other
+ }
+
+ case class ColorBuffer(color: Color) {
+ val buffer = new mutable.ListBuffer[String]
+
+ buffer += color.toString
+
+ def +(color: Color): ColorBuffer = {
+ buffer += color.toString
+ this
+ }
+
+ def +(str: String): ColorBuffer = {
+ buffer += str
+ this
+ }
+
+ override def toString =
+ buffer.mkString
+ }
+
+ case class Red(text: String) extends Color(Console.RED)
+ case class Blue(text: String) extends Color(Console.BLUE)
+ case class Cyan(text: String) extends Color(Console.CYAN)
+ case class Black(text: String) extends Color(Console.BLACK)
+ case class Green(text: String) extends Color(Console.GREEN)
+ case class White(text: String) extends Color(Console.WHITE)
+ case class Yellow(text: String) extends Color(Console.YELLOW)
+ case class Magenta(text: String) extends Color(Console.MAGENTA)
+
+ case class RedB(text: String) extends Color(Console.RED_B)
+ case class BlueB(text: String) extends Color(Console.BLUE_B)
+ case class CyanB(text: String) extends Color(Console.CYAN_B)
+ case class BlackB(text: String) extends Color(Console.BLACK_B)
+ case class GreenB(text: String) extends Color(Console.GREEN_B)
+ case class WhiteB(text: String) extends Color(Console.WHITE_B)
+ case class YellowB(text: String) extends Color(Console.YELLOW_B)
+ case class MagentaB(text: String) extends Color(Console.MAGENTA_B)
+}