- ansi_format(+Attributes:list(compound), +String:string) is det
- call_print(:Goal_1) is det
- call_print_boolean(:Goal_0) is det
- dcg_ansi_format(+Attributes:list(compound), :Dcg_0) is det
- print_boolean(+Boolean:boolean) is det
- print_json(+Dict:dict) is det
- print_json(+Indent:nonneg, +Dict:dict) is det
- print_file_peek(+File:atom, +Length:nonneg) is det
- print_file_peek(+File:atom, +Length:nonneg, +Attributes:list(compound)) is det
- print_stream_peek(+In:istream, Length:nonneg) is det
- print_stream_peek(+In:istream, Length:nonneg, +Attributes:list(compound)) is det
- print_term(+Term:term) is det
- print_term_nl(+Term:term) is det
- print_term_nl(+Term:term, +Options:options) is det
- print_term_nl(+Out:blob, +Term:term, +Options:options) is det
Re-exported predicates
The following predicates are exported from this file while their implementation is defined in imported modules or non-module files loaded by this module.
- ansi_format(+ClassOrAttributes, +Format, +Args) is det
- Format text with ANSI attributes. This predicate behaves as
format/2 using Format and Args, but if the
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:
- bold
- underline
- fg(Color),bg(Color),hfg(Color),hbg(Color)
- For
fg(Color)
and bg(Color)
, the colour name can be '#RGB' or
'#RRGGBB'
- fg8(Spec),bg8(Spec)
- 8-bit color specification. Spec is a colour name,
h(Color)
or an integer 0..255.
- fg(R,G,B),bg(R,G,B)
- 24-bit (direct color) specification. The components are
integers in the range 0..255.
Defined color constants are below. default
can be used to
access the default color of the terminal.
- black, red, green, yellow, blue, magenta, cyan, white
ANSI sequences are sent if and only if
- The
current_output
has the property tty(true)
(see
stream_property/2).
- The Prolog flag
color_term
is true
.
- ansi_hyperlink(+Stream, +Location) is det
- ansi_hyperlink(+Stream, +URL, +Label) is det
- Create a hyperlink for a terminal emulator. The file is fairly easy,
but getting the line and column across is not as there seems to be
no established standard. The current implementation emits, i.e.,
inserting a capital
L
before the line.
``file://AbsFileName[#LLine[:Column]]``
- See also
- - https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
- ansi_hyperlink(+Stream, +Location) is det
- ansi_hyperlink(+Stream, +URL, +Label) is det
- Create a hyperlink for a terminal emulator. The file is fairly easy,
but getting the line and column across is not as there seems to be
no established standard. The current implementation emits, i.e.,
inserting a capital
L
before the line.
``file://AbsFileName[#LLine[:Column]]``
- See also
- - https://gist.github.com/egmontkob/eb114294efbcd5adb1944c9f3cb5feda
- ansi_get_color(+Which, -RGB) is semidet
- Obtain the RGB color for an ANSI color parameter. Which is either a
color alias or an integer ANSI color id. Defined aliases are
foreground
and background
. This predicate sends a request to the
console (user_output
) and reads the reply. This assumes an xterm
compatible terminal.
- Arguments:
-
RGB | - is a term rgb(Red,Green,Blue) . The color components are
integers in the range 0..65535. |
- print_term(+Term, +Options) is det
- Pretty print a Prolog term. The following options are processed:
- output(+Stream)
- Define the output stream. Default is
user_output
- right_margin(?Column)
- Width of a line. If the output is a tty and tty_size/2
can produce a size the default is the number of columns
minus 8. Otherwise the default is 72 characters. If the
Column is unbound it is unified with the computed value.
- left_margin(+Integer)
- Left margin for continuation lines. Default is the current
line position or
0
if that is not available.
- tab_width(+Integer)
- Distance between tab-stops. Default is 8 characters.
- indent_arguments(+Spec)
- Defines how arguments of compound terms are placed. Defined
values are:
false
-
Simply place them left to right (no line-breaks)
true
-
Place them vertically, aligned with the open bracket (not
implemented)
auto
(default)-
As horizontal if line-width is not exceeded, vertical
otherwise. See also
auto_indent_arguments(Int)
- An integer
-
Place them vertically aligned, <N> spaces to the right of
the beginning of the head.
- auto_indent_arguments(+Integer)
- Used by
indent_arguments(auto)
to decide whether to introduce
a newline after the `(` or not. If specified and > 0, this
provides the default integer for indent_arguments(Int)
. The
"hanging" mode is used if otherwise the indentation increment
is twice this value.
- operators(+Boolean)
- This is the inverse of the write_term/3 option
ignore_ops
.
Default is to respect them.
- write_options(+List)
- List of options passed to write_term/3 for terms that are
not further processed. Default:
[ numbervars(true),
quoted(true),
portray(true)
]
- fullstop(Boolean)
- If
true
(default false
), add a full stop (.) to the output.
- nl(Boolean)
- If
true
(default false
), add a newline to the output.
Undocumented predicates
The following predicates are exported, but not or incorrectly documented.
- print_json(Arg1, Arg2)
- print_file_peek(Arg1, Arg2, Arg3)
- print_stream_peek(Arg1, Arg2, Arg3)
- print_term_nl(Arg1, Arg2)
- print_term_nl(Arg1, Arg2, Arg3)