Grouped_help_text.t is similar to a
Help_text.t, but allows the user to organize the commands into groups.
module Group_name : Core.Identifiable
module View_spec : sig ... end
View_spec is almost identical to
Help_text.View_spec, but additionally allows the user to customize how to display group names.
module Command = Help_text.Command
include Sexplib0.Sexpable.S with type t := t
val t_of_sexp : Sexplib0.Sexp.t -> t
val sexp_of_t : t -> Sexplib0.Sexp.t
include Ppx_compare_lib.Comparable.S with type t := t
val empty : t
val is_empty : t -> bool
*_exn functions below, the group name is assumed to be unique for each help text group, and an exception is raised if duplicate group names are encountered.
val of_group_list_exn : (Group_name.t * Help_text.t) list -> t
of_group_list_exn converts a list of help text groups into a grouped help text.
val add_group_exn : t -> Group_name.t -> Help_text.t -> t
add_group_exn adds a new group to a grouped help text. This is linear in the number of groups already in the grouped help text.
val groups : t -> (Group_name.t * Help_text.t) list
groups returns the help text groups in a grouped help text.
val of_command_list : ?custom_group_order:Group_name.t list -> (Group_name.t * Command.t) list -> t
commands are analogous to the corresponding
group functions above, but deal with single commands instead of help text groups.
Commands with the same group name are grouped together.
By default, group order is determined by the order in which the groups first appear in the command list. However, if
custom_group_order is given, it will be used to determine the group order instead. Any groups that appear in
custom_group_order but not in the command list will be omitted. Any groups that appear in the command list but not in
custom_group_order will be added to the end of
custom_group_order, in the order in which they first appear in the command list.
add_command is linear in both the number of groups in the grouped help text and the number of commands already in its group.
val add_command : t -> Group_name.t -> Command.t -> t
val commands : t -> (Group_name.t * Command.t) list
val view : t -> View_spec.t -> Virtual_dom.Vdom.Node.t
view displays a help text table with one row per command, organized into groups. Each group has a row containing the group name preceding the rows corresponding to the group's commands.