colorful-monoids-0.2.1.3: Styled console text output using ANSI escape sequences.

CopyrightDaniel Mendler (c) 2017
LicenseMIT (see the file LICENSE)
Maintainermail@daniel-mendler.de
Stabilityexperimental
Portabilityportable
Safe HaskellSafe
LanguageHaskell2010

Data.Monoid.Colorful.Flat

Contents

Description

This module provides the flat Colored type, which is used internally for rendering the nested Colored but is also useful on its own. The API resembles the API of Colorful.

Synopsis

Colored datatypes

data Colored a Source #

Constructors

Value a 
Style !Style 
Unstyle !Style 
Fg !Color 
Bg !Color 
Push 
Pop 
Reset 
Instances
Functor Colored Source # 
Instance details

Defined in Data.Monoid.Colorful.Flat

Methods

fmap :: (a -> b) -> Colored a -> Colored b #

(<$) :: a -> Colored b -> Colored a #

Foldable Colored Source # 
Instance details

Defined in Data.Monoid.Colorful.Flat

Methods

fold :: Monoid m => Colored m -> m #

foldMap :: Monoid m => (a -> m) -> Colored a -> m #

foldr :: (a -> b -> b) -> b -> Colored a -> b #

foldr' :: (a -> b -> b) -> b -> Colored a -> b #

foldl :: (b -> a -> b) -> b -> Colored a -> b #

foldl' :: (b -> a -> b) -> b -> Colored a -> b #

foldr1 :: (a -> a -> a) -> Colored a -> a #

foldl1 :: (a -> a -> a) -> Colored a -> a #

toList :: Colored a -> [a] #

null :: Colored a -> Bool #

length :: Colored a -> Int #

elem :: Eq a => a -> Colored a -> Bool #

maximum :: Ord a => Colored a -> a #

minimum :: Ord a => Colored a -> a #

sum :: Num a => Colored a -> a #

product :: Num a => Colored a -> a #

Traversable Colored Source # 
Instance details

Defined in Data.Monoid.Colorful.Flat

Methods

traverse :: Applicative f => (a -> f b) -> Colored a -> f (Colored b) #

sequenceA :: Applicative f => Colored (f a) -> f (Colored a) #

mapM :: Monad m => (a -> m b) -> Colored a -> m (Colored b) #

sequence :: Monad m => Colored (m a) -> m (Colored a) #

Eq a => Eq (Colored a) Source # 
Instance details

Defined in Data.Monoid.Colorful.Flat

Methods

(==) :: Colored a -> Colored a -> Bool #

(/=) :: Colored a -> Colored a -> Bool #

Ord a => Ord (Colored a) Source # 
Instance details

Defined in Data.Monoid.Colorful.Flat

Methods

compare :: Colored a -> Colored a -> Ordering #

(<) :: Colored a -> Colored a -> Bool #

(<=) :: Colored a -> Colored a -> Bool #

(>) :: Colored a -> Colored a -> Bool #

(>=) :: Colored a -> Colored a -> Bool #

max :: Colored a -> Colored a -> Colored a #

min :: Colored a -> Colored a -> Colored a #

Show a => Show (Colored a) Source # 
Instance details

Defined in Data.Monoid.Colorful.Flat

Methods

showsPrec :: Int -> Colored a -> ShowS #

show :: Colored a -> String #

showList :: [Colored a] -> ShowS #

Generic (Colored a) Source # 
Instance details

Defined in Data.Monoid.Colorful.Flat

Associated Types

type Rep (Colored a) :: Type -> Type #

Methods

from :: Colored a -> Rep (Colored a) x #

to :: Rep (Colored a) x -> Colored a #

Generic1 Colored Source # 
Instance details

Defined in Data.Monoid.Colorful.Flat

Associated Types

type Rep1 Colored :: k -> Type #

Methods

from1 :: Colored a -> Rep1 Colored a #

to1 :: Rep1 Colored a -> Colored a #

type Rep (Colored a) Source # 
Instance details

Defined in Data.Monoid.Colorful.Flat

type Rep1 Colored Source # 
Instance details

Defined in Data.Monoid.Colorful.Flat

data Style Source #

Rendering style

Constructors

Bold

Bold font

Italic

Italic font

Underline

Underlined text

Invert

Invert foreground and background color

Blink

Blinking

Instances
Bounded Style Source # 
Instance details

Defined in Data.Monoid.Colorful.Color

Enum Style Source # 
Instance details

Defined in Data.Monoid.Colorful.Color

Eq Style Source # 
Instance details

Defined in Data.Monoid.Colorful.Color

Methods

(==) :: Style -> Style -> Bool #

(/=) :: Style -> Style -> Bool #

Ord Style Source # 
Instance details

Defined in Data.Monoid.Colorful.Color

Methods

compare :: Style -> Style -> Ordering #

(<) :: Style -> Style -> Bool #

(<=) :: Style -> Style -> Bool #

(>) :: Style -> Style -> Bool #

(>=) :: Style -> Style -> Bool #

max :: Style -> Style -> Style #

min :: Style -> Style -> Style #

Read Style Source # 
Instance details

Defined in Data.Monoid.Colorful.Color

Show Style Source # 
Instance details

Defined in Data.Monoid.Colorful.Color

Methods

showsPrec :: Int -> Style -> ShowS #

show :: Style -> String #

showList :: [Style] -> ShowS #

Generic Style Source # 
Instance details

Defined in Data.Monoid.Colorful.Color

Associated Types

type Rep Style :: Type -> Type #

Methods

from :: Style -> Rep Style x #

to :: Rep Style x -> Style #

type Rep Style Source # 
Instance details

Defined in Data.Monoid.Colorful.Color

type Rep Style = D1 (MetaData "Style" "Data.Monoid.Colorful.Color" "colorful-monoids-0.2.1.3-KQ4pdXOAU8zLHhz6xJWI7W" False) ((C1 (MetaCons "Bold" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Italic" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Underline" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Invert" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Blink" PrefixI False) (U1 :: Type -> Type))))

data Color Source #

Named colors, 256 and RGB colors for more capable terminals.

Constructors

DefaultColor

Default terminal color (terminal specific)

Black 
Red 
Green 
Yellow 
Blue 
Magenta 
Cyan 
White 
DullBlack 
DullRed 
DullGreen 
DullYellow 
DullBlue 
DullMagenta 
DullCyan 
DullWhite 
Color256 !Word8

Color from 256 color scheme. Color is automatically reduced to 8 colors for less capable terminals.

RGB !Word8 !Word8 !Word8

True color. Color is automatically reduced to 256 or 8 colors for less capable terminals.

Instances
Eq Color Source # 
Instance details

Defined in Data.Monoid.Colorful.Color

Methods

(==) :: Color -> Color -> Bool #

(/=) :: Color -> Color -> Bool #

Ord Color Source # 
Instance details

Defined in Data.Monoid.Colorful.Color

Methods

compare :: Color -> Color -> Ordering #

(<) :: Color -> Color -> Bool #

(<=) :: Color -> Color -> Bool #

(>) :: Color -> Color -> Bool #

(>=) :: Color -> Color -> Bool #

max :: Color -> Color -> Color #

min :: Color -> Color -> Color #

Read Color Source # 
Instance details

Defined in Data.Monoid.Colorful.Color

Show Color Source # 
Instance details

Defined in Data.Monoid.Colorful.Color

Methods

showsPrec :: Int -> Color -> ShowS #

show :: Color -> String #

showList :: [Color] -> ShowS #

Generic Color Source # 
Instance details

Defined in Data.Monoid.Colorful.Color

Associated Types

type Rep Color :: Type -> Type #

Methods

from :: Color -> Rep Color x #

to :: Rep Color x -> Color #

type Rep Color Source # 
Instance details

Defined in Data.Monoid.Colorful.Color

type Rep Color = D1 (MetaData "Color" "Data.Monoid.Colorful.Color" "colorful-monoids-0.2.1.3-KQ4pdXOAU8zLHhz6xJWI7W" False) ((((C1 (MetaCons "DefaultColor" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Black" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Red" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Green" PrefixI False) (U1 :: Type -> Type))) :+: ((C1 (MetaCons "Yellow" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Blue" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Magenta" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Cyan" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "White" PrefixI False) (U1 :: Type -> Type))))) :+: (((C1 (MetaCons "DullBlack" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "DullRed" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "DullGreen" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "DullYellow" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "DullBlue" PrefixI False) (U1 :: Type -> Type)))) :+: ((C1 (MetaCons "DullMagenta" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "DullCyan" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "DullWhite" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "Color256" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word8)) :+: C1 (MetaCons "RGB" PrefixI False) (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word8) :*: (S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word8) :*: S1 (MetaSel (Nothing :: Maybe Symbol) NoSourceUnpackedness SourceStrict DecidedStrict) (Rec0 Word8))))))))

Terminal type

data Term Source #

Terminal type. For less capable terminals the color depth is automatically reduced.

Constructors

TermDumb

Dumb terminal - no color output

Term8

8 colors supported

Term256

256 colors supported

TermRGB

True colors supported

TermWin

Windows terminal. Will use emulation (Not yet implemented).

Instances
Bounded Term Source # 
Instance details

Defined in Data.Monoid.Colorful.Term

Enum Term Source # 
Instance details

Defined in Data.Monoid.Colorful.Term

Methods

succ :: Term -> Term #

pred :: Term -> Term #

toEnum :: Int -> Term #

fromEnum :: Term -> Int #

enumFrom :: Term -> [Term] #

enumFromThen :: Term -> Term -> [Term] #

enumFromTo :: Term -> Term -> [Term] #

enumFromThenTo :: Term -> Term -> Term -> [Term] #

Eq Term Source # 
Instance details

Defined in Data.Monoid.Colorful.Term

Methods

(==) :: Term -> Term -> Bool #

(/=) :: Term -> Term -> Bool #

Ord Term Source # 
Instance details

Defined in Data.Monoid.Colorful.Term

Methods

compare :: Term -> Term -> Ordering #

(<) :: Term -> Term -> Bool #

(<=) :: Term -> Term -> Bool #

(>) :: Term -> Term -> Bool #

(>=) :: Term -> Term -> Bool #

max :: Term -> Term -> Term #

min :: Term -> Term -> Term #

Read Term Source # 
Instance details

Defined in Data.Monoid.Colorful.Term

Show Term Source # 
Instance details

Defined in Data.Monoid.Colorful.Term

Methods

showsPrec :: Int -> Term -> ShowS #

show :: Term -> String #

showList :: [Term] -> ShowS #

Generic Term Source # 
Instance details

Defined in Data.Monoid.Colorful.Term

Associated Types

type Rep Term :: Type -> Type #

Methods

from :: Term -> Rep Term x #

to :: Rep Term x -> Term #

type Rep Term Source # 
Instance details

Defined in Data.Monoid.Colorful.Term

type Rep Term = D1 (MetaData "Term" "Data.Monoid.Colorful.Term" "colorful-monoids-0.2.1.3-KQ4pdXOAU8zLHhz6xJWI7W" False) ((C1 (MetaCons "TermDumb" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "Term8" PrefixI False) (U1 :: Type -> Type)) :+: (C1 (MetaCons "Term256" PrefixI False) (U1 :: Type -> Type) :+: (C1 (MetaCons "TermRGB" PrefixI False) (U1 :: Type -> Type) :+: C1 (MetaCons "TermWin" PrefixI False) (U1 :: Type -> Type))))

hGetTerm :: Handle -> IO Term Source #

The action (hGetTerm handle) determines the terminal type of the file handle.

The terminal type is determined by checking if the file handle points to a device and by looking at the $TERM environment variable.

Colorful printing to file handle

hPrintColored :: Foldable f => (Handle -> a -> IO ()) -> Handle -> Term -> f (Colored a) -> IO () Source #

printColored :: Foldable f => (a -> IO ()) -> Term -> f (Colored a) -> IO () Source #

hPrintColoredIO :: Handle -> Term -> [Colored (IO ())] -> IO () Source #

printColoredIO :: Term -> [Colored (IO ())] -> IO () Source #

Show with ANSI escape sequences

showColored :: (Foldable f, Monoid o) => (a -> o) -> (SGRCode -> o) -> Term -> f (Colored a) -> o Source #

showColoredM :: (Foldable f, Monad m, Monoid o) => (a -> m o) -> (SGRCode -> m o) -> Term -> f (Colored a) -> m o Source #

Reexport from Data.Semigroup

(<>) :: Semigroup a => a -> a -> a infixr 6 #

An associative operation.