package merlin-lib
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=cc3c7c01f19a454c96f6bc8a39538023e01042519f001a895fd61488e2b49fb5
sha512=4268a932a8494023699abd98e0d52deb6f201f656863849db230dc8692050e0fe00cc25a50d70e902410f17a27268fd8335c32636f616ef012cf86fc9a43e019
doc/merlin-lib.utils/Merlin_utils/Format_doc/index.html
Module Merlin_utils.Format_docSource
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 ->
unitpp_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