This library allows for exploiting the color and attribute facilities of most modern terminals using ANSI escape sequences. This library provides the following:
The behavior of this library is controlled by two Prolog flags:
[|]
(99,
[111,108,111,114,95,116,101,114,109])true
, activate the color output for this library.
Otherwise simply call format/3.[|]
(104,
[121,112,101,114,108,105,110,107,95,116,101,114,109])url(Location)
and url(URL, Label)
elements of Prolog messages.current_output
is a
terminal, it adds ANSI escape sequences according to Attributes. For
example, to print a text in bold cyan, do
?- ansi_format([bold,fg(cyan)], 'Hello ~w', [world]).
Attributes is either a single attribute, a list thereof or a term that is mapped to concrete attributes based on the current theme (see prolog:console_color/2). The attribute names are derived from the ANSI specification. See the source for sgr_code/2 for details. Some commonly used attributes are:
fg(Color)
,
bg(Color)
,hfg(Color)
,hbg(Color)
fg(Color)
and bg(Color)
, the colour name
can be’#RGB’or’#RRGGBB’fg8(Spec)
,
bg8(Spec)
h(Color)
or an integer 0..255.fg(R, G, B)
,
bg(R,
G, B)
Defined color constants are below. default
can be used
to access the default color of the terminal.
ANSI sequences are sent if and only if
current_output
has the property tty(true)
(see
stream_property/2).color_term
is true
.boot/messages.pl
.
library(theme/dark)
for an example implementation and the Term
values used by the system messages.ansi(+Attr, +Fmt, +Args)
in message specifications.L
before the line.
``file://AbsFileName[#LLine[:Column]]``
foreground
and background
. This predicate
sends a request to the console (user_output
) and reads the
reply. This assumes an xterm
compatible terminal.
RGB | is a term rgb(Red,Green,Blue) .
The color components are integers in the range 0..65535. |