Module Format_doc.Doc
Definitions and immutable API for composing documents
Type definitions and core functions
type stag = Stdlib.Format.stagtype element = | Text of string| With_size of int| Open_box of {kind : Format_doc.Doc.box_type;indent : int;
}| Close_box| Open_tag of Stdlib.Format.stag| Close_tag| Open_tbox| Tab_break of {}| Set_tab| Close_tbox| Simple_break of {}| Break of {}| Flush of {}| Newline| If_newline| Deprecated of Stdlib.Format.formatter -> unit(*Escape hatch: a
*)Formatprinter used to provide backward-compatibility for user-defined printer (from the#install_printertoplevel directive for instance).
Base formatting instruction recognized by Format
type ('a, 'b) fmt = ('a, Format_doc.Doc.t, Format_doc.Doc.t, 'b) Stdlib.format4type printer0 = Format_doc.Doc.t -> Format_doc.Doc.ttype 'a printer = 'a -> Format_doc.Doc.printer0val empty : Format_doc.Doc.tEmpty document
val format : Stdlib.Format.formatter -> Format_doc.Doc.t -> unitformat ppf doc sends the format instruction of doc to the Format's formatter doc.
val fold :
('acc -> Format_doc.Doc.element -> 'acc) ->
'acc ->
Format_doc.Doc.t ->
'accFold over a document as a sequence of instructions
val msg : ('a, Format_doc.Doc.t) Format_doc.Doc.fmt -> 'aval kmsg : (Format_doc.Doc.t -> 'b) -> ('a, 'b) Format_doc.Doc.fmt -> 'aval printf : ('a, Format_doc.Doc.printer0) Format_doc.Doc.fmt -> 'aval kprintf :
(Format_doc.Doc.t -> 'b) ->
('a, Format_doc.Doc.t -> 'b) Format_doc.Doc.fmt ->
'aval open_box : Format_doc.Doc.box_type -> int -> Format_doc.Doc.printer0The functions below mirror Format printers, without the pp_print_ prefix naming convention
val close_box : Format_doc.Doc.printer0val text : string Format_doc.Doc.printerval string : string Format_doc.Doc.printerval bytes : bytes Format_doc.Doc.printerval with_size : int Format_doc.Doc.printerval int : int Format_doc.Doc.printerval float : float Format_doc.Doc.printerval char : char Format_doc.Doc.printerval bool : bool Format_doc.Doc.printerval space : Format_doc.Doc.printer0val cut : Format_doc.Doc.printer0val break : spaces:int -> indent:int -> Format_doc.Doc.printer0val custom_break :
fits:((string * int * string) as 'a) ->
breaks:'a ->
Format_doc.Doc.printer0val force_newline : Format_doc.Doc.printer0val if_newline : Format_doc.Doc.printer0val flush : Format_doc.Doc.printer0val force_stop : Format_doc.Doc.printer0val open_tbox : Format_doc.Doc.printer0val set_tab : Format_doc.Doc.printer0val tab : Format_doc.Doc.printer0val tab_break : width:int -> offset:int -> Format_doc.Doc.printer0val close_tbox : Format_doc.Doc.printer0val open_tag : Format_doc.Doc.stag Format_doc.Doc.printerval close_tag : Format_doc.Doc.printer0val list :
?sep:Format_doc.Doc.printer0 ->
'a Format_doc.Doc.printer ->
'a list Format_doc.Doc.printerval iter :
?sep:Format_doc.Doc.printer0 ->
iter:(('a -> unit) -> 'b -> unit) ->
'a Format_doc.Doc.printer ->
'b Format_doc.Doc.printerval array :
?sep:Format_doc.Doc.printer0 ->
'a Format_doc.Doc.printer ->
'a array Format_doc.Doc.printerval seq :
?sep:Format_doc.Doc.printer0 ->
'a Format_doc.Doc.printer ->
'a Stdlib.Seq.t Format_doc.Doc.printerval option :
?none:Format_doc.Doc.printer0 ->
'a Format_doc.Doc.printer ->
'a option Format_doc.Doc.printerval result :
ok:'a Format_doc.Doc.printer ->
error:'e Format_doc.Doc.printer ->
('a, 'e) Stdlib.result Format_doc.Doc.printerval either :
left:'a Format_doc.Doc.printer ->
right:'b Format_doc.Doc.printer ->
('a, 'b) Stdlib.Either.t Format_doc.Doc.printerAlignment functions
val align_prefix : (Format_doc.Doc.t * int) list -> Format_doc.Doc.t listAlign the right side of one "@{<ralign>...@}" tag box by inserting spaces at the beginning of boxes. Those function do nothing if the tag box appears after a break hint.
val align_prefix2 :
(Format_doc.Doc.t * int) ->
(Format_doc.Doc.t * int) ->
Format_doc.Doc.t * Format_doc.Doc.t