Packages
io_ansi_plus
0.1.10
0.1.84
0.1.83
0.1.82
0.1.81
0.1.80
0.1.79
0.1.78
0.1.77
0.1.76
0.1.73
0.1.72
0.1.71
0.1.70
0.1.69
0.1.68
0.1.67
0.1.66
0.1.65
0.1.63
0.1.62
0.1.61
0.1.60
0.1.59
0.1.58
0.1.57
0.1.56
0.1.55
0.1.54
0.1.53
0.1.52
0.1.51
0.1.50
0.1.49
0.1.48
0.1.47
0.1.46
0.1.45
0.1.44
0.1.43
0.1.41
0.1.40
0.1.39
0.1.38
0.1.37
0.1.36
0.1.35
0.1.34
0.1.33
0.1.32
0.1.31
0.1.30
0.1.29
0.1.28
0.1.27
0.1.26
0.1.25
0.1.24
0.1.23
0.1.22
0.1.21
0.1.20
0.1.19
0.1.18
0.1.17
0.1.16
0.1.15
0.1.14
0.1.13
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Functionality to render ANSI escape sequences. Clone of module IO.ANSI but supporting named xterm colors.
Current section
Files
Jump to
Current section
Files
io_ansi_plus
README.md
README.md
# IO ANSI Plus
[](https://travis-ci.org/RaymondLoranger/io_ansi_plus)
Functionality to render ANSI escape sequences.
Clone of `IO.ANSI` supporting named Xterm colors.
## Installation
Add the `:io_ansi_plus` dependency to your `mix.exs` file:
```elixir
def deps do
[
{:io_ansi_plus, "~> 0.1"}
]
end
```
## Notes
In addition to the 16 regular ANSI colors<sup>[*](#footnote1)</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:
```elixir
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`.
<sup><a name="footnote1">*</a></sup> Actually 8 colors and their "bright" variants.
## Customization
You can create new color names or modify any predefined one by changing the
dependency's `config/persist_colors.exs` file.
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:
```elixir
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:
```elixir
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)
```
## Examples
## 