Skip to content

Commit bf76d2f

Browse files
committed
Add coloring util
1 parent 8bd73b3 commit bf76d2f

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package dotty.tools
2+
package dotc
3+
package printing
4+
5+
import scala.collection.mutable
6+
7+
object Highlighting {
8+
9+
implicit def colorToString(c: Color): String = c.toString
10+
implicit def cbufToString(cb: ColorBuffer): String = cb.toString
11+
12+
abstract class Color(private val color: String) {
13+
def text: String
14+
15+
override def toString = color + text + Console.RESET
16+
17+
def +(other: Color): ColorBuffer =
18+
new ColorBuffer(this) + other
19+
20+
def +(other: String): ColorBuffer =
21+
new ColorBuffer(this) + other
22+
}
23+
24+
case class ColorBuffer(color: Color) {
25+
val buffer = new mutable.ListBuffer[String]
26+
27+
buffer += color.toString
28+
29+
def +(color: Color): ColorBuffer = {
30+
buffer += color.toString
31+
this
32+
}
33+
34+
def +(str: String): ColorBuffer = {
35+
buffer += str
36+
this
37+
}
38+
39+
override def toString =
40+
buffer.mkString
41+
}
42+
43+
case class Red(text: String) extends Color(Console.RED)
44+
case class Blue(text: String) extends Color(Console.BLUE)
45+
case class Cyan(text: String) extends Color(Console.CYAN)
46+
case class Black(text: String) extends Color(Console.BLACK)
47+
case class Green(text: String) extends Color(Console.GREEN)
48+
case class White(text: String) extends Color(Console.WHITE)
49+
case class Yellow(text: String) extends Color(Console.YELLOW)
50+
case class Magenta(text: String) extends Color(Console.MAGENTA)
51+
52+
case class RedB(text: String) extends Color(Console.RED_B)
53+
case class BlueB(text: String) extends Color(Console.BLUE_B)
54+
case class CyanB(text: String) extends Color(Console.CYAN_B)
55+
case class BlackB(text: String) extends Color(Console.BLACK_B)
56+
case class GreenB(text: String) extends Color(Console.GREEN_B)
57+
case class WhiteB(text: String) extends Color(Console.WHITE_B)
58+
case class YellowB(text: String) extends Color(Console.YELLOW_B)
59+
case class MagentaB(text: String) extends Color(Console.MAGENTA_B)
60+
}

0 commit comments

Comments
 (0)