Did you know ... Search Documentation:
Pack prolog_library_collection -- prolog/print_ext.pl
PublicShow source
 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 re-exported from other modules

 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_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(+Integer)
Width of a line. Default is 72 characters.
left_margin(+Integer)
Left margin for continuation lines. Default is 0.
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.
An integer
Place them vertically aligned, <N> spaces to the right of the beginning of the head.
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)
    ]

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)