A complete yet small extension for OCaml standard library (reduced, recommended)
Library extLib
Module OptParse . Formatter
type t = {
indent : unit -> unit;(*

Increase the indentation level.

dedent : unit -> unit;(*

Decrease the indentation level.

format_usage : string -> string;(*

Format usage string into style of this formatter.

format_heading : string -> string;(*

Format heading into style of this formatter.

format_description : string -> string;(*

Format description into style of this formatter.

format_option : (char list * string list) -> string list -> string option -> string;(*

Format option into style of this formatter (see explanation below).


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 ref -> ?indent:int ref -> ?indent_increment:int -> ?max_help_position:int -> ?width:int -> ?short_first:bool -> unit -> t

Create an "indented" formatter with the given options.

  • parameter width

    Total with of the usage messages printed.

  • parameter max_help_position

    Maximum starting column for the help messages relating to each option.

  • parameter short_first

    List all the short option names first?

  • parameter indent_increment

    Number of columns to indent by when more indentation is required.

  • parameter indent

    Reference to the current indentation amount. Its value reflects changes in indentation level.

  • parameter level

    Reference to the current indentation level. Its value reflects changes in indentation level.

val titled_formatter : ?level:int ref -> ?indent:int ref -> ?indent_increment:int -> ?max_help_position:int -> ?width:int -> ?short_first:bool -> unit -> t

Creates a titled formatter which is quite similar to the indented formatter. See OptParse.Formatter.indented_formatter for a description of the options.

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).

  • parameter initial_indent

    Indentation of the first line.

  • parameter subsequent_indent

    Indentation of the following lines.

  • returns

    a list of lines making up the reformatted paragraph.

val fill : ?initial_indent:int -> ?subsequent_indent:int -> string -> int -> string

See OptParse.Formatter.wrap.

  • returns

    a string containing the reformatted paragraph.