include module type of sig ... endval pp_open_box : formatter ‑> int ‑> unitval pp_close_box : formatter ‑> unit ‑> unitval pp_open_hbox : formatter ‑> unit ‑> unitval pp_open_vbox : formatter ‑> int ‑> unitval pp_open_hvbox : formatter ‑> int ‑> unitval pp_open_hovbox : formatter ‑> int ‑> unitval pp_print_string : formatter ‑> string ‑> unitval pp_print_as : formatter ‑> int ‑> string ‑> unitval pp_print_int : formatter ‑> int ‑> unitval pp_print_float : formatter ‑> float ‑> unitval pp_print_char : formatter ‑> char ‑> unitval pp_print_bool : formatter ‑> bool ‑> unitval pp_print_space : formatter ‑> unit ‑> unitval pp_print_cut : formatter ‑> unit ‑> unitval pp_print_break : formatter ‑> int ‑> int ‑> unitval pp_force_newline : formatter ‑> unit ‑> unitval pp_print_if_newline : formatter ‑> unit ‑> unitval pp_print_flush : formatter ‑> unit ‑> unitval pp_print_newline : formatter ‑> unit ‑> unitval pp_set_margin : formatter ‑> int ‑> unitval pp_get_margin : formatter ‑> unit ‑> intval pp_set_max_indent : formatter ‑> int ‑> unitval pp_get_max_indent : formatter ‑> unit ‑> intval pp_set_max_boxes : formatter ‑> int ‑> unitval pp_get_max_boxes : formatter ‑> unit ‑> intval pp_over_max_boxes : formatter ‑> unit ‑> boolval pp_open_tbox : formatter ‑> unit ‑> unitval pp_close_tbox : formatter ‑> unit ‑> unitval pp_set_tab : formatter ‑> unit ‑> unitval pp_print_tab : formatter ‑> unit ‑> unitval pp_print_tbreak : formatter ‑> int ‑> int ‑> unitval pp_set_ellipsis_text : formatter ‑> string ‑> unitval pp_get_ellipsis_text : formatter ‑> unit ‑> stringval pp_open_tag : formatter ‑> string ‑> unitval open_tag : tag ‑> unitval pp_close_tag : formatter ‑> unit ‑> unitval pp_set_tags : formatter ‑> bool ‑> unitval pp_set_print_tags : formatter ‑> bool ‑> unitval pp_set_mark_tags : formatter ‑> bool ‑> unitval pp_get_print_tags : formatter ‑> unit ‑> boolval pp_get_mark_tags : formatter ‑> unit ‑> boolval pp_set_formatter_out_channel : formatter ‑> Pervasives.out_channel ‑> unitval pp_set_formatter_output_functions : formatter ‑> (string ‑> int ‑> int ‑> unit) ‑> (unit ‑> unit) ‑> unitval pp_get_formatter_output_functions : formatter ‑> unit ‑> (string ‑> int ‑> int ‑> unit) * (unit ‑> unit)val pp_set_formatter_out_functions : formatter ‑> formatter_out_functions ‑> unitval set_formatter_out_functions : formatter_out_functions ‑> unitval pp_get_formatter_out_functions : formatter ‑> unit ‑> formatter_out_functionsval get_formatter_out_functions : unit ‑> formatter_out_functionsval pp_set_formatter_tag_functions : formatter ‑> formatter_tag_functions ‑> unitval set_formatter_tag_functions : formatter_tag_functions ‑> unitval pp_get_formatter_tag_functions : formatter ‑> unit ‑> formatter_tag_functionsval get_formatter_tag_functions : unit ‑> formatter_tag_functionsval formatter_of_out_channel : Pervasives.out_channel ‑> formatterval std_formatter : formatterval err_formatter : formatterval formatter_of_buffer : Buffer.t ‑> formatterval str_formatter : formatterval make_formatter : (string ‑> int ‑> int ‑> unit) ‑> (unit ‑> unit) ‑> formatterval formatter_of_out_functions : formatter_out_functions ‑> formatterval make_symbolic_output_buffer : unit ‑> symbolic_output_bufferval clear_symbolic_output_buffer : symbolic_output_buffer ‑> unitval get_symbolic_output_buffer : symbolic_output_buffer ‑> symbolic_output_item listval flush_symbolic_output_buffer : symbolic_output_buffer ‑> symbolic_output_item listval add_symbolic_output_item : symbolic_output_buffer ‑> symbolic_output_item ‑> unitval formatter_of_symbolic_output_buffer : symbolic_output_buffer ‑> formatterval pp_print_text : formatter ‑> string ‑> unitval printf : ('a, formatter, unit) Pervasives.format ‑> 'aval eprintf : ('a, formatter, unit) Pervasives.format ‑> 'aval asprintf : ('a, formatter, unit, string) Pervasives.format4 ‑> 'aval kasprintf : (string ‑> 'a) ‑> ('b, formatter, unit, 'a) Pervasives.format4 ‑> 'bval bprintf : Buffer.t ‑> ('a, formatter, unit) Pervasives.format ‑> 'aval kprintf : (string ‑> 'a) ‑> ('b, unit, string, 'a) Pervasives.format4 ‑> 'bval set_all_formatter_output_functions : out:(string ‑> int ‑> int ‑> unit) ‑> flush:(unit ‑> unit) ‑> newline:(unit ‑> unit) ‑> spaces:(int ‑> unit) ‑> unitval get_all_formatter_output_functions : unit ‑> (string ‑> int ‑> int ‑> unit) * (unit ‑> unit) * (unit ‑> unit) * (int ‑> unit)val pp_set_all_formatter_output_functions : formatter ‑> out:(string ‑> int ‑> int ‑> unit) ‑> flush:(unit ‑> unit) ‑> newline:(unit ‑> unit) ‑> spaces:(int ‑> unit) ‑> unitval pp_get_all_formatter_output_functions : formatter ‑> unit ‑> (string ‑> int ‑> int ‑> unit) * (unit ‑> unit) * (unit ‑> unit) * (int ‑> unit)val int : int printerval string : string printerval bool : bool printerval float3 : float printerval float : float printerval substring : (string * int * int) printerPrint the substring (s,i,len), where i is the offset
in s and len the number of bytes in the substring.
(s,i,len) does not
describe a proper substring.val text : string printerPrint string, but replacing spaces with breaks and newlines
with newline.
See pp_print_text on recent versions of OCaml.
opt pp prints options as follows:
Some x will become "some foo" if pp x ---> "foo".None will become "none".In the tuple printers, the sep argument is only available.
within a b p wraps p inside the strings a and b. Convenient,
for instances, for brackets, parenthesis, quotes, etc.
Wrap the printer in a vertical box.
Wrap the printer in a horizontal/vertical box.
Wrap the printer in a horizontal or vertical box.
val return : ('a, _, _, 'a) Pervasives.format4 ‑> unit printerreturn "some_format_string" takes a argument-less format string
and returns a printer actionable by ().
Examples:
return ",@ "return "@{<Red>and then@}@,"return "@[<v>a@ b@]"val of_to_string : ('a ‑> string) ‑> 'a printerof_to_string f converts its input to a string using f,
then prints the string.
some pp will print options as follows:
Some x is printed using pp on xNone is not printed at allUse ANSI escape codes https://en.wikipedia.org/wiki/ANSI_escape_code to put some colors on the terminal.
This uses tags in format strings to specify the style. Current styles are the following:
Example:
set_color_default true;;
Format.printf
"what is your @{<White>favorite color@}? @{<blue>blue@}! No, @{<red>red@}! Ahhhhhhh@.";;status: unstable
val set_color_tag_handling : t ‑> unitAdd functions to support color tags to the given formatter.
val set_color_default : bool ‑> unitset_color_default b enables color handling on the standard formatters
(stdout, stderr) if b = true as well as on sprintf formatters;
it disables the color handling if b = false.
with_color "Blue" pp behaves like the printer pp, but with the given
style.
status: unstable
with_colorf "Blue" out "%s %d" "yolo" 42 will behave like Format.fprintf,
but wrapping the content with the given style.
status: unstable
val with_color_sf : string ‑> ('a, t, unit, string) Pervasives.format4 ‑> 'awith_color_sf "Blue" out "%s %d" "yolo" 42 will behave like
sprintf, but wrapping the content with the given style.
Example:
CCFormat.with_color_sf "red" "%a" CCFormat.Dump.(list int) [1;2;3] |> print_endline;;status: unstable
val with_color_ksf : f:(string ‑> 'b) ‑> string ‑> ('a, t, unit, 'b) Pervasives.format4 ‑> 'awith_color_ksf "Blue" ~f "%s %d" "yolo" 42 will behave like
ksprintf, but wrapping the content with the given style.
Example:
the following with raise Failure with a colored message
CCFormat.with_color_ksf "red" ~f:failwith "%a" CCFormat.Dump.(list int) [1;2;3];;val to_string : 'a printer ‑> 'a ‑> stringval with_out_chan : Pervasives.out_channel ‑> (t ‑> 'a) ‑> 'awith_out_chan oc f turns oc into a formatter fmt, and call f fmt.
Behaves like f fmt from then on, but whether the call to f fails
or returns, fmt is flushed before the call terminates.
val stdout : tval stderr : tval sprintf : ('a, t, unit, string) Pervasives.format4 ‑> 'aPrint into a string any format string that would usually be compatible with fprintf. Like Format.asprintf.
val sprintf_no_color : ('a, t, unit, string) Pervasives.format4 ‑> 'aLike sprintf but never prints colors.
val sprintf_dyn_color : colors:bool ‑> ('a, t, unit, string) Pervasives.format4 ‑> 'aLike sprintf but enable/disable colors depending on colors.
Example:
(* with colors *)
CCFormat.sprintf_dyn_color ~colors:true "@{<Red>%a@}"
CCFormat.Dump.(list int) [1;2;3] |> print_endline;;
(* without colors *)
CCFormat.sprintf_dyn_color ~colors:false "@{<Red>%a@}"
CCFormat.Dump.(list int) [1;2;3] |> print_endline;;Like fprintf but enable/disable colors depending on colors.
val ksprintf : ?margin:int ‑> f:(string ‑> 'b) ‑> ('a, Format.formatter, unit, 'b) Pervasives.format4 ‑> 'aksprintf fmt ~f formats using fmt, in a way similar to sprintf,
and then calls f on the resulting string.
Print structures as OCaml values, so that they can be parsed back by OCaml (typically, in the toplevel, for debugging).
Example:
Format.printf "%a@." CCFormat.Dump.(list int) CCList.(1 -- 200);;
Format.printf "%a@." CCFormat.Dump.(array (list (pair int bool)))
[| [1, true; 2, false]; []; [42, false] |];;module Dump : sig ... end