package merlin-lib
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=67da3b34f2fea07678267309f61da4a2c6f08298de0dc59655b8d30fd8269af1
sha512=1fb3b5180d36aa82b82a319e15b743b802b6888f0dc67645baafdb4e18dfc23a7b90064ec9bc42f7424061cf8cde7f8839178d8a8537bf4596759f3ff4891873
doc/merlin-lib.utils/Merlin_utils/Format_doc/index.html
Module Merlin_utils.Format_doc
Source
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.
Compatibility API
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.
formatter rdoc
creates a formatter
that updates the rdoc
reference
Translate a Format_doc
printer to a Format
one.
If necessary, embbed a Format
printer inside a formatting instruction stream. This breaks every guarantees provided by Format_doc
.
Format string interpreters
doc_printf
and kdoc_printf
creates a document directly
Compatibility with Doc
Source compatibility with Format
String printers
Primitive type printers
Printer combinators
Boxes and tags
Break hints
Tabulations
Newlines and flushing
Compiler specific functions
Separators
Compiler output
val pp_two_columns :
?sep:string ->
?max_lines:int ->
formatter ->
(string * string) list ->
unit
pp_two_columns ?sep ?max_lines ppf l
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