module Language.Cimple.PrettyColor where

import           Prettyprinter
import           Prettyprinter.Render.Terminal (AnsiStyle)
import qualified Prettyprinter.Render.Terminal as Term

black, red, green, yellow, blue, magenta, cyan, white, dullblack, dullred,
    dullgreen, dullyellow, dullblue, dullmagenta, dullcyan, dullwhite, onblack,
    onred, ongreen, onyellow, onblue, onmagenta, oncyan, onwhite, ondullblack,
    ondullred, ondullgreen, ondullyellow, ondullblue, ondullmagenta, ondullcyan,
    ondullwhite, underline :: Doc AnsiStyle -> Doc AnsiStyle
black :: Doc AnsiStyle -> Doc AnsiStyle
black         = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.color       Color
Term.Black)
red :: Doc AnsiStyle -> Doc AnsiStyle
red           = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.color       Color
Term.Red)
green :: Doc AnsiStyle -> Doc AnsiStyle
green         = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.color       Color
Term.Green)
yellow :: Doc AnsiStyle -> Doc AnsiStyle
yellow        = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.color       Color
Term.Yellow)
blue :: Doc AnsiStyle -> Doc AnsiStyle
blue          = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.color       Color
Term.Blue)
magenta :: Doc AnsiStyle -> Doc AnsiStyle
magenta       = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.color       Color
Term.Magenta)
cyan :: Doc AnsiStyle -> Doc AnsiStyle
cyan          = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.color       Color
Term.Cyan)
white :: Doc AnsiStyle -> Doc AnsiStyle
white         = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.color       Color
Term.White)
dullblack :: Doc AnsiStyle -> Doc AnsiStyle
dullblack     = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.colorDull   Color
Term.Black)
dullred :: Doc AnsiStyle -> Doc AnsiStyle
dullred       = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.colorDull   Color
Term.Red)
dullgreen :: Doc AnsiStyle -> Doc AnsiStyle
dullgreen     = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.colorDull   Color
Term.Green)
dullyellow :: Doc AnsiStyle -> Doc AnsiStyle
dullyellow    = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.colorDull   Color
Term.Yellow)
dullblue :: Doc AnsiStyle -> Doc AnsiStyle
dullblue      = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.colorDull   Color
Term.Blue)
dullmagenta :: Doc AnsiStyle -> Doc AnsiStyle
dullmagenta   = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.colorDull   Color
Term.Magenta)
dullcyan :: Doc AnsiStyle -> Doc AnsiStyle
dullcyan      = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.colorDull   Color
Term.Cyan)
dullwhite :: Doc AnsiStyle -> Doc AnsiStyle
dullwhite     = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.colorDull   Color
Term.White)
onblack :: Doc AnsiStyle -> Doc AnsiStyle
onblack       = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.bgColor     Color
Term.Black)
onred :: Doc AnsiStyle -> Doc AnsiStyle
onred         = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.bgColor     Color
Term.Red)
ongreen :: Doc AnsiStyle -> Doc AnsiStyle
ongreen       = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.bgColor     Color
Term.Green)
onyellow :: Doc AnsiStyle -> Doc AnsiStyle
onyellow      = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.bgColor     Color
Term.Yellow)
onblue :: Doc AnsiStyle -> Doc AnsiStyle
onblue        = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.bgColor     Color
Term.Blue)
onmagenta :: Doc AnsiStyle -> Doc AnsiStyle
onmagenta     = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.bgColor     Color
Term.Magenta)
oncyan :: Doc AnsiStyle -> Doc AnsiStyle
oncyan        = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.bgColor     Color
Term.Cyan)
onwhite :: Doc AnsiStyle -> Doc AnsiStyle
onwhite       = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.bgColor     Color
Term.White)
ondullblack :: Doc AnsiStyle -> Doc AnsiStyle
ondullblack   = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.bgColorDull Color
Term.Black)
ondullred :: Doc AnsiStyle -> Doc AnsiStyle
ondullred     = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.bgColorDull Color
Term.Red)
ondullgreen :: Doc AnsiStyle -> Doc AnsiStyle
ondullgreen   = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.bgColorDull Color
Term.Green)
ondullyellow :: Doc AnsiStyle -> Doc AnsiStyle
ondullyellow  = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.bgColorDull Color
Term.Yellow)
ondullblue :: Doc AnsiStyle -> Doc AnsiStyle
ondullblue    = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.bgColorDull Color
Term.Blue)
ondullmagenta :: Doc AnsiStyle -> Doc AnsiStyle
ondullmagenta = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.bgColorDull Color
Term.Magenta)
ondullcyan :: Doc AnsiStyle -> Doc AnsiStyle
ondullcyan    = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.bgColorDull Color
Term.Cyan)
ondullwhite :: Doc AnsiStyle -> Doc AnsiStyle
ondullwhite   = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate (Color -> AnsiStyle
Term.bgColorDull Color
Term.White)
underline :: Doc AnsiStyle -> Doc AnsiStyle
underline     = AnsiStyle -> Doc AnsiStyle -> Doc AnsiStyle
forall ann. ann -> Doc ann -> Doc ann
annotate AnsiStyle
Term.underlined