packages feed

pretty-simple 1.0.0.0 → 1.0.0.1

raw patch · 5 files changed

+24/−20 lines, 5 filesdep +containersPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

Dependencies added: containers

API changes (from Hackage documentation)

- Text.Pretty.Simple.Internal.ExprToOutput: PrinterState :: LineNum -> NestLevel -> [Output] -> PrinterState
+ Text.Pretty.Simple.Internal.ExprToOutput: PrinterState :: {-# UNPACK #-} !LineNum -> {-# UNPACK #-} !NestLevel -> !(Seq Output) -> PrinterState
- Text.Pretty.Simple.Internal.ExprToOutput: [_currLine] :: PrinterState -> LineNum
+ Text.Pretty.Simple.Internal.ExprToOutput: [_currLine] :: PrinterState -> {-# UNPACK #-} !LineNum
- Text.Pretty.Simple.Internal.ExprToOutput: [_nestLevel] :: PrinterState -> NestLevel
+ Text.Pretty.Simple.Internal.ExprToOutput: [_nestLevel] :: PrinterState -> {-# UNPACK #-} !NestLevel
- Text.Pretty.Simple.Internal.ExprToOutput: [_outputList] :: PrinterState -> [Output]
+ Text.Pretty.Simple.Internal.ExprToOutput: [_outputList] :: PrinterState -> !(Seq Output)
- Text.Pretty.Simple.Internal.ExprToOutput: addOutputs :: MonadState PrinterState m => [OutputType] -> m ()
+ Text.Pretty.Simple.Internal.ExprToOutput: addOutputs :: MonadState PrinterState m => Seq OutputType -> m ()
- Text.Pretty.Simple.Internal.ExprToOutput: expressionsToOutputs :: [Expr] -> [Output]
+ Text.Pretty.Simple.Internal.ExprToOutput: expressionsToOutputs :: [Expr] -> Seq Output
- Text.Pretty.Simple.Internal.ExprToOutput: outputList :: Lens' PrinterState [Output]
+ Text.Pretty.Simple.Internal.ExprToOutput: outputList :: Lens' PrinterState (Seq Output)
- Text.Pretty.Simple.Internal.ExprToOutput: printerState :: LineNum -> NestLevel -> [Output] -> PrinterState
+ Text.Pretty.Simple.Internal.ExprToOutput: printerState :: LineNum -> NestLevel -> Seq Output -> PrinterState
- Text.Pretty.Simple.Internal.Output: Output :: NestLevel -> OutputType -> Output
+ Text.Pretty.Simple.Internal.Output: Output :: {-# UNPACK #-} !NestLevel -> !OutputType -> Output
- Text.Pretty.Simple.Internal.Output: [outputNestLevel] :: Output -> NestLevel
+ Text.Pretty.Simple.Internal.Output: [outputNestLevel] :: Output -> {-# UNPACK #-} !NestLevel
- Text.Pretty.Simple.Internal.Output: [outputOutputType] :: Output -> OutputType
+ Text.Pretty.Simple.Internal.Output: [outputOutputType] :: Output -> !OutputType

Files

example/Example.hs view
@@ -3,11 +3,11 @@  import Text.Pretty.Simple (pPrint) -import Example.Data (bar)+import Example.Data (baz)  main :: IO () main = do-  putStrLn "\nThe following normal \"print\" output:\n"-  print bar-  putStrLn "\ngets turned into this (using \"Text.Pretty.Simple.pPrint\"):\n"-  pPrint bar+  -- putStrLn "\nThe following normal \"print\" output:\n"+  -- print bar+  -- putStrLn "\ngets turned into this (using \"Text.Pretty.Simple.pPrint\"):\n"+  pPrint baz
pretty-simple.cabal view
@@ -1,5 +1,5 @@ name:                pretty-simple-version:             1.0.0.0+version:             1.0.0.1 synopsis:            Simple pretty printer for any datatype with a 'Show' instance. description:         Please see README.md homepage:            https://github.com/cdepillabout/pretty-simple@@ -28,6 +28,7 @@                      , Text.Pretty.Simple.Internal.OutputPrinter   build-depends:       base >= 4.6 && < 5                      , ansi-terminal+                     , containers                      , lens                      , mono-traversable                      , mtl
src/Text/Pretty/Simple.hs view
@@ -44,6 +44,7 @@ #endif  import Control.Monad.IO.Class (MonadIO, liftIO)+import Data.Foldable (toList) import Data.Text.Lazy (Text, pack) import Data.Text.Lazy.IO as LText @@ -95,7 +96,7 @@   case expressionParse string of     Left _ -> pack string     Right expressions ->-      render outputOptions $ expressionsToOutputs expressions+      render outputOptions . toList $ expressionsToOutputs expressions  -- $examples -- Simple Haskell datatype:
src/Text/Pretty/Simple/Internal/ExprToOutput.hs view
@@ -3,6 +3,7 @@ {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-}+{-# LANGUAGE OverloadedLists #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TemplateHaskell #-}@@ -33,7 +34,8 @@ import Data.Data (Data) import Data.Foldable (traverse_) import Data.Monoid ((<>))-import Data.Sequences (intersperse)+import Data.Sequence (Seq)+import Data.Sequences (fromList, intersperse, singleton) import Data.Typeable (Typeable) import GHC.Generics (Generic) @@ -57,14 +59,14 @@ makeLenses ''LineNum  data PrinterState = PrinterState-  { _currLine :: LineNum-  , _nestLevel :: NestLevel-  , _outputList :: [Output]+  { _currLine :: {-# UNPACK #-} !LineNum+  , _nestLevel :: {-# UNPACK #-} !NestLevel+  , _outputList :: !(Seq Output)   } deriving (Eq, Data, Generic, Show, Typeable) makeLenses ''PrinterState  -- | Smart-constructor for 'PrinterState'.-printerState :: LineNum -> NestLevel -> [Output] -> PrinterState+printerState :: LineNum -> NestLevel -> Seq Output -> PrinterState printerState currLineNum nestNum output =   PrinterState   { _currLine = currLineNum@@ -78,11 +80,11 @@ addOutput outputType = do   nest <- use nestLevel   let output = Output nest outputType-  outputList <>= [output]+  outputList <>= singleton output  addOutputs   :: MonadState PrinterState m-  => [OutputType] -> m ()+  => Seq OutputType -> m () addOutputs outputTypes = do   nest <- use nestLevel   let outputs = Output nest <$> outputTypes@@ -97,13 +99,13 @@ -- markers. -- -- >>> testInit $ putSurroundExpr "[" "]" (CommaSeparated [])--- PrinterState {_currLine = LineNum {unLineNum = 0}, _nestLevel = NestLevel {_unNestLevel = -1}, _outputList = [Output {outputNestLevel = NestLevel {_unNestLevel = 0}, outputOutputType = OutputOpenBracket},Output {outputNestLevel = NestLevel {_unNestLevel = 0}, outputOutputType = OutputCloseBracket}]}+-- PrinterState {_currLine = LineNum {unLineNum = 0}, _nestLevel = NestLevel {_unNestLevel = -1}, _outputList = fromList [Output {outputNestLevel = NestLevel {_unNestLevel = 0}, outputOutputType = OutputOpenBracket},Output {outputNestLevel = NestLevel {_unNestLevel = 0}, outputOutputType = OutputCloseBracket}]} -- -- If there is only one expression, and it will print out on one line, then -- just print everything all on one line, with spaces around the expressions. -- -- >>> testInit $ putSurroundExpr "{" "}" (CommaSeparated [[Other "hello"]])--- PrinterState {_currLine = LineNum {unLineNum = 0}, _nestLevel = NestLevel {_unNestLevel = -1}, _outputList = [Output {outputNestLevel = NestLevel {_unNestLevel = 0}, outputOutputType = OutputOpenBrace},Output {outputNestLevel = NestLevel {_unNestLevel = 0}, outputOutputType = OutputOther " "},Output {outputNestLevel = NestLevel {_unNestLevel = 0}, outputOutputType = OutputOther "hello"},Output {outputNestLevel = NestLevel {_unNestLevel = 0}, outputOutputType = OutputOther " "},Output {outputNestLevel = NestLevel {_unNestLevel = 0}, outputOutputType = OutputCloseBrace}]}+-- PrinterState {_currLine = LineNum {unLineNum = 0}, _nestLevel = NestLevel {_unNestLevel = -1}, _outputList = fromList [Output {outputNestLevel = NestLevel {_unNestLevel = 0}, outputOutputType = OutputOpenBrace},Output {outputNestLevel = NestLevel {_unNestLevel = 0}, outputOutputType = OutputOther " "},Output {outputNestLevel = NestLevel {_unNestLevel = 0}, outputOutputType = OutputOther "hello"},Output {outputNestLevel = NestLevel {_unNestLevel = 0}, outputOutputType = OutputOther " "},Output {outputNestLevel = NestLevel {_unNestLevel = 0}, outputOutputType = OutputCloseBrace}]} -- -- If there is only one expression, but it will print out on multiple lines, -- then go to newline and print out on multiple lines.@@ -173,7 +175,7 @@ doIndent :: MonadState PrinterState m => m () doIndent = do   nest <- use $ nestLevel . unNestLevel-  addOutputs $ replicate nest OutputIndent+  addOutputs . fromList $ replicate nest OutputIndent  newLine   :: MonadState PrinterState m@@ -210,7 +212,7 @@ runInitPrinterState :: [Expr] -> PrinterState runInitPrinterState = runPrinterState initPrinterState -expressionsToOutputs :: [Expr] -> [Output]+expressionsToOutputs :: [Expr] -> Seq Output expressionsToOutputs =   view outputList . runInitPrinterState . modificationsExprList 
src/Text/Pretty/Simple/Internal/Output.hs view
@@ -92,6 +92,6 @@ -- | An 'OutputType' token together with a 'NestLevel'.  Basically, each -- 'OutputType' keeps track of its own 'NestLevel'. data Output = Output-  { outputNestLevel :: NestLevel-  , outputOutputType :: OutputType+  { outputNestLevel :: {-# UNPACK #-} !NestLevel+  , outputOutputType :: !OutputType   } deriving (Data, Eq, Generic, Read, Show, Typeable)