IO ANSI Plus
Functionality to render ANSI escape sequences. Clone of module IO.ANSI but supporting named Xterm colors.
Installation
Add io_ansi_plus to your list of dependencies in mix.exs:
def deps do
[
{:io_ansi_plus, "~> 0.1"}
]
end
Notes
In addition to the 16 standard ANSI colors1 and their background counterparts, this package also supports the 256 Xterm colors (foreground and background).
Most of these 256 colors were given names like:
:aqua:chartreuse:psychedelic_purple
For the full list of color names, see the Color Samples section below.
You can use color number atoms for the few colors that are unnamed:
alias IO.ANSI.Plus, as: ANSI
["Hello, ", :color163, "world!"] |> ANSI.format(true) |> IO.puts()
["Hello, ", :color163_background, "world!"] |> ANSI.format(true) |> IO.puts()
Any color can have multiple names, for example, :moccasin and :navajo_white for color code 223.
For details, see file config/persist_colors.exs.
1 Actually 8 colors and their "bright" variants.
Shortcuts
The package also provides shortcuts to drop the format calls in the following
expressions:
alias IO.ANSI.Plus, as: ANSI
["Hello, ", :brown, "world!"] |> ANSI.format(true) |> IO.puts()
["Hello, ", :purple, "world!"] |> ANSI.format(true) |> IO.write()
[:aqua, "Garry, your move:", :reset, " "] |> ANSI.format(true) |> IO.gets()
The above expressions can be respectively shortened to:
alias IO.ANSI.Plus, as: ANSI
["Hello, ", :brown, "world!"] |> ANSI.puts(true)
["Hello, ", :purple, "world!"] |> ANSI.write(true)
[:aqua, "Garry, your move:", :reset, " "] |> ANSI.gets(true)