Library
Module
Module type
Parameter
Class
Class type
This module offers basic control of ANSI compliant terminals and the windows shell.
The functions below do not send ANSI codes (i.e., do nothing or only print the output) when then output is not connected to a TTY. Functions providing information (such as pos_cursor
) fail when in that situation. TTY detection is configurable by changing the value of isatty
.
This library is not thread safe.
val black : style
Shortcut for Foreground Black
val red : style
Shortcut for Foreground Red
val green : style
Shortcut for Foreground Green
val yellow : style
Shortcut for Foreground Yellow
val blue : style
Shortcut for Foreground Blue
val magenta : style
Shortcut for Foreground Magenta
val cyan : style
Shortcut for Foreground Cyan
val white : style
Shortcut for Foreground White
val default : style
Shortcut for Foreground Default
val on_black : style
Shortcut for Background Black
val on_red : style
Shortcut for Background Red
val on_green : style
Shortcut for Background Green
val on_yellow : style
Shortcut for Background Yellow
val on_blue : style
Shortcut for Background Blue
val on_magenta : style
Shortcut for Background Magenta
val on_cyan : style
Shortcut for Background Cyan
val on_white : style
Shortcut for Background White
val on_default : style
Shortcut for Background Default
val print_string : style list -> string -> unit
print_string attr txt
prints the string txt
with the attibutes attr
. After printing, the attributes are automatically reseted to the defaults, unless autoreset is turned off.
val prerr_string : style list -> string -> unit
Like print_string
but prints on the standard error.
printf attr format arg1 ... argN
prints the arguments arg1
,...,argN
according to format
with the attibutes attr
. After printing, the attributes are automatically reseted to the defaults, unless autoreset is turned off.
Same as printf
but prints the result on stderr
.
Same as printf
but returns the result in a string. This only works on ANSI compliant terminals — for which escape sequences are used — and not under Windows — where system calls are required. On Windows, it is identical to the standard sprintf
.
val erase : loc -> unit
erase Eol
clear from the cursor position to the end of the line without moving the cursor. erase Above
erases everything before the position of the cursor. erase Below
erases everything after the position of the cursor. erase Screen
erases the whole screen.
This function does not modify the position of the cursor.
set_cursor x y
puts the cursor at position (x,y)
, x
indicating the column (the leftmost one being 1) and y
being the line (the topmost one being 1). If x <= 0
, the x
coordinate is unchanged; if y <= 0
, the y
coordinate is unchanged.
move_cursor x y
moves the cursor by x
columns (to the right if x > 0
, to the left if x < 0
) and by y
lines (downwards if y > 0
and upwards if y < 0
).
move_bol()
moves the cursor to the beginning of the current line. This is useful for progress bars for example.
pos_cursor()
returns a couple (x,y)
giving the current position of the cursor, x >= 1
being the column and y >= 1
the row.
restore_cursor()
replaces the cursor to the position saved with save_cursor()
.
resize width height
resize the current terminal to the given width
and height
.
size()
returns a pair (width, height)
giving the size of the terminal in character cells.
scroll n
scrolls the terminal by n
lines, up (creating new lines at the bottom) if n > 0
and down if n < 0
.
val isatty : (Unix.file_descr -> bool) ref
Function used to detect whether the current output is connected to a TTY. Defaults to Unix.isatty
.