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"}
]
endNotes
In addition to the 16 regular ANSI colors<sup>*</sup> 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
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 details, see file config/persist_colors.exs.
Customization
You can specify new color names by changing file config/persist_colors.exs.
You would then need to run `mix deps.compile io_ansi_plus [--force]`
to make the changes effective.
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)