Elm.Pretty is a pretty printer for Elm syntax trees. It makes use of
the-sett/elm-pretty-printer to best fit the code to a given page width in
characters.
It aims to output code that is fully stable with respect to elm-format in the
sense that running elm-format on the output should have no effect at all. The
advantage of this is that if generated code moves to being edited by hand, there
will not be a large white-space only diff created when elm-format is applied.
To print the Doc created by the pretty functions, the-sett/elm-pretty-printer
is used:
import Elm.Pretty
import Pretty
-- Fit to a page width of 120 characters
elmAsString =
Elm.Pretty.prepareLayout someFile
|> Pretty.pretty 120There is also a helper pretty function in this module that can go straight to
a String, for convenience:
-- Fit to a page width of 120 characters
elmAsString =
Elm.Pretty.pretty 120 someFilePrints a file of Elm code to the given page width, making use of the pretty printer.
Pretty prints a list of import statements.
The list will be de-duplicated and sorted.
Pretty prints the contents of an exposing statement, as found on a module or import statement.
The exposed values will be de-duplicated and sorted.
Pretty prints a single top-level declaration.
Pretty prints an Elm function, which may include documentation and a signature too.
Pretty prints a type alias definition, which may include documentation too.
Pretty prints a custom type declaration, which may include documentation too.
Pretty prints a port declaration.
Pretty prints a desctructuring declaration.
Pretty prints a type signature.
Pretty prints a pattern.
Pretty prints an expression.
Pretty prints a type annotation.
Prepares a file of Elm code for layout by the pretty printer.
Note that the
Doctype returned by this is aPretty.Doc. This can be printed to a string by thethe-sett/elm-pretty-printerpackage.These
Docbased functions are exposed in case you want to pretty print some Elm inside something else with the pretty printer. Theprettyfunction can be used to go directly from aFileto aString, if that is more convenient.