module Formatter: sig
.. end
This module contains the types and functions for implementing
custom usage message formatters.
type
t = {
|
indent : unit -> unit ; |
|
dedent : unit -> unit ; |
|
format_usage : string -> string ; |
|
format_heading : string -> string ; |
|
format_description : string -> string ; |
|
format_option : char list * string list -> string list -> string option -> string ; |
}
This is the type of a formatter. The format_option
has
signature format_option (snames,lnames) metavars help
, where
snames
is a list of the short option names, lnames
is a
list of the long option names, metavars
is a list of the
metavars the option takes as arguments, and help
is the help
string supplied by the user.
Standard formatters
val indented_formatter : ?level:int Pervasives.ref ->
?indent:int Pervasives.ref ->
?indent_increment:int ->
?max_help_position:int ->
?width:int -> ?short_first:bool -> unit -> t
Create an "indented" formatter with the given options.
level
: Reference to the current indentation level. Its
value reflects changes in indentation level.
indent
: Reference to the current indentation amount. Its
value reflects changes in indentation level.
indent_increment
: Number of columns to indent by when
more indentation is required.
max_help_position
: Maximum starting column for the help
messages relating to each option.
width
: Total with of the usage messages printed.
short_first
: List all the short option names first?
val titled_formatter : ?level:int Pervasives.ref ->
?indent:int Pervasives.ref ->
?indent_increment:int ->
?max_help_position:int ->
?width:int -> ?short_first:bool -> unit -> t
Low-level formatting
val wrap : ?initial_indent:int -> ?subsequent_indent:int -> string -> int -> string list
wrap text width
reflows the given text paragraph into lines
of width at most width
(lines may exceed this if the are
single words that exceed this limit).
Returns a list of lines making up the reformatted paragraph.
initial_indent
: Indentation of the first line.
subsequent_indent
: Indentation of the following lines.
val fill : ?initial_indent:int -> ?subsequent_indent:int -> string -> int -> string