Copyright | (c) Abhinav Gupta 2016 |
---|---|
License | BSD3 |
Maintainer | Abhinav Gupta <mail@abhinavg.net> |
Stability | experimental |
Safe Haskell | Safe |
Language | Haskell2010 |
This module provides a pretty printer for Thrift IDLs. Most of the printers
defined in this module produce output highlighted using ANSI escape codes.
Get plain output by using plain
.
Use prettyPrintHighlighted
to produce output highlighted using ANSI escape
codes. Note that this output will be unparseable and is suitable for printing
inside a compatible terminal only. Use prettyPrint
if you don't want
highlighted output.
The behavior of the printer can be customized using Config
objects.
The module also exports instances of the Pretty
typeclass for elements of
the AST.
- prettyPrintHighlighted :: Program ann -> Doc
- prettyPrint :: Program ann -> Doc
- program :: Config -> Program ann -> Doc
- header :: Header ann -> Doc
- include :: Include ann -> Doc
- namespace :: Namespace ann -> Doc
- definition :: Config -> Definition ann -> Doc
- constant :: Config -> Const ann -> Doc
- typeDefinition :: Config -> Type ann -> Doc
- service :: Config -> Service ann -> Doc
- typedef :: Config -> Typedef ann -> Doc
- enum :: Config -> Enum ann -> Doc
- struct :: Config -> Struct ann -> Doc
- union :: Config -> Union ann -> Doc
- exception :: Config -> Exception ann -> Doc
- senum :: Config -> Senum ann -> Doc
- typeReference :: Config -> TypeReference ann -> Doc
- constantValue :: Config -> ConstValue ann -> Doc
- docstring :: Text -> Doc
- data Config = Config {
- indentWidth :: Int
- defaultConfig :: Config
Documentation
prettyPrintHighlighted :: Program ann -> Doc Source
Top-level pretty printer for Thrift documents.
prettyPrint :: Program ann -> Doc Source
Top-level pretty printer for Thrift documents that uses the default
configuration (defaultConfig
) for pretty printing.
Components
definition :: Config -> Definition ann -> Doc Source
Print a constant, type, or service definition.
typeDefinition :: Config -> Type ann -> Doc Source
typeReference :: Config -> TypeReference ann -> Doc Source
Pretty print a field type.
constantValue :: Config -> ConstValue ann -> Doc Source
Pretty print a constant value.
Configuration
Configuration for the pretty printer.
Config | |
|
defaultConfig :: Config Source
Default pretty printing configuration.