logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Format_doc - Composable document for the Format formatting engine.

Documentation

       Module Format_doc
        : sigend

       Composable document for the Format formatting engine.

       This  module  introduces  a  pure  and  immutable document type which represents a sequence of formatting
       instructions to be printed by a formatting engine at later point. At the  same  time,  it  also  provides
       format  string  interpreter  which  produces  this  document type from format string and their associated
       printers.

       The module is designed to be source compatible with code defining format printers: replacing `Format`  by
       `Format_doc` in your code will convert `Format` printers to `Format_doc` printers.

       moduleDoc:sigend

       Definitions and immutable API for composing documents

   CompatibilityAPI
       The  functions and types below provides source compatibility with format printers and conversion function
       from Format_doc printers to Format printers. The reverse direction is implemented using an  escape  hatch
       in the formatting instruction and should only be used to preserve backward compatibility.

       typedoc = Doc.ttypet = doctypeformattertype'aprinter = formatter->'a->unitvalformatter : docref->formatterformatterrdoc creates a Format_doc.formatter that updates the rdoc reference

       type'aformat_printer = Format.formatter->'a->unit

       Translate a Format_doc printer to a Format one.

       valcompat : 'aprinter->'aformat_printervalcompat1 : ('p1->'aprinter)->'p1->'aformat_printervalcompat2 : ('p1->'p2->'aprinter)->'p1->'p2->'aformat_printervaldeprecated_printer : (Format.formatter->unit)->formatter->unit

       If  necessary,  embbed  a  Format  printer  inside  a  formatting  instruction  stream. This breaks every
       guarantees provided by Format_doc .

       valdeprecated : 'aformat_printer->'aprintervaldeprecated1 : ('p1->'aformat_printer)->'p1->'aprinterFormatstringinterpretersvalfprintf : formatter->('a,formatter,unit)format->'avalkfprintf : (formatter->'a)->formatter->('b,formatter,unit,'a)format4->'bvalasprintf : ('a,formatter,unit,string)format4->'avalkasprintf : (string->'a)->('b,formatter,unit,'a)format4->'bvaldprintf : ('a,formatter,unit,formatter->unit)format4->'avalkdprintf : ((formatter->unit)->'a)->('b,formatter,unit,'a)format4->'bvaldoc_printf : ('a,formatter,unit,doc)format4->'aFormat_doc.doc_printf and Format_doc.kdoc_printf creates a document directly

       valkdoc_printf : (doc->'r)->('a,formatter,unit,'r)format4->'aCompatibilitywithFormat_doc.Docvaldoc_printer : 'aprinter->'aDoc.printervalpp_doc : docprinterSourcecompatibilitywithFormatStringprintersvalpp_print_string : stringprintervalpp_print_substring : pos:int->len:int->stringprintervalpp_print_text : stringprintervalpp_print_bytes : bytesprintervalpp_print_as : formatter->int->string->unitvalpp_print_substring_as : pos:int->len:int->formatter->int->string->unitPrimitivetypeprintersvalpp_print_char : charprintervalpp_print_int : intprintervalpp_print_float : floatprintervalpp_print_bool : boolprintervalpp_print_nothing : unitprinterPrintercombinatorsvalpp_print_iter : ?pp_sep:unitprinter->(('a->unit)->'b->unit)->'aprinter->'bprintervalpp_print_list : ?pp_sep:unitprinter->'aprinter->'alistprintervalpp_print_array : ?pp_sep:unitprinter->'aprinter->'aarrayprintervalpp_print_seq : ?pp_sep:unitprinter->'aprinter->'aSeq.tprintervalpp_print_option : ?none:unitprinter->'aprinter->'aoptionprintervalpp_print_result : ok:'aprinter->error:'eprinter->('a,'e)resultprintervalpp_print_either : left:'aprinter->right:'bprinter->('a,'b)Either.tprinterBoxesandtagsvalpp_open_stag : Format.stagprintervalpp_close_stag : unitprintervalpp_open_box : intprintervalpp_close_box : unitprinterBreakhintsvalpp_print_space : unitprintervalpp_print_cut : unitprintervalpp_print_break : formatter->int->int->unitvalpp_print_custom_break : formatter->fits:string*int*string->breaks:string*int*string->unitTabulationsvalpp_open_tbox : unitprintervalpp_close_tbox : unitprintervalpp_set_tab : unitprintervalpp_print_tab : unitprintervalpp_print_tbreak : formatter->int->int->unitNewlinesandflushingvalpp_print_if_newline : unitprintervalpp_force_newline : unitprintervalpp_print_flush : unitprintervalpp_print_newline : unitprinterCompilerspecificfunctionsSeparatorsvalcomma : unitprinterCompileroutputvalpp_two_columns : ?sep:string->?max_lines:int->formatter->(string*string)list->unitpp_two_columns?sep?max_linesppfl  prints  the  lines in l as two columns separated by sep ("|" by
       default).  max_lines can be used to indicate a maximum number of lines  to  print  --  an  ellipsis  gets
       inserted at the middle if the input has too many lines.

       Example:

       pp_two_columns  ~max_lines:3  Format.std_formatter [ "abc", "hello"; "def", "zzz"; "a"  , "bllbl"; "bb" ,
       "dddddd"; ]

       prints

       abc | hello ...  bb  | dddddd

OCamldoc                                           2025-06-12                                     Format_doc(3o)

Module

       Module   Format_doc

Name

       Format_doc - Composable document for the Format formatting engine.

See Also