A scala (2.11+) macro based ansi interpolator.
It has two advantages over non-macro interpolators:
- is faster and lighter (brings no extra dependency at runtime)
- detects syntax issues at compile time
Add the following dependency to your SBT project:
"org.backuity" %% "ansi-interpolator" % "1.1" % "provided"
Note about provided
: see this stackoverflow answer
for a better SBT dependency scope.
Import the AnsiFormatter and use the ansi
interpolator:
import org.backuity.ansi.AnsiFormatter.FormattedHelper
ansi"Text containing ansi tags such as %bold{bold text} or %underline{can be %yellow{nested}}"
Here is the list of supported tags:
- bold
- underline
- italic (may not work on every terminal)
- blink (may not work on every terminal)
And color tags:
- black
- red
- green
- yellow
- blue
- magenta
- cyan
- white
[error] .../Main.scala:17: Unsupported tag underlin
[error] println(ansi"Please %underlin{underline this : $str}")
[error] ^