{- |
   Module      : Text.Highlighting.Kate.Styles
   Copyright   : Copyright (C) 2011 John MacFarlane
   License     : GNU GPL, version 2 or above

   Maintainer  : John MacFarlane <jgm@berkeley.edu>
   Stability   : alpha
   Portability : portable

Styles for rendering annotated source lines.
-}

module Text.Highlighting.Kate.Styles ( pygments, kate, espresso, tango,
                                       haddock, monochrome, zenburn )
where
import Text.Highlighting.Kate.Types

color :: Int -> Maybe Color
color :: Int -> Maybe Color
color = forall a. ToColor a => a -> Maybe Color
toColor

-- | Style based on pygments's default colors.
pygments :: Style
pygments :: Style
pygments = Style{
    backgroundColor :: Maybe Color
backgroundColor = forall a. Maybe a
Nothing
  , defaultColor :: Maybe Color
defaultColor = forall a. Maybe a
Nothing
  , lineNumberColor :: Maybe Color
lineNumberColor = Int -> Maybe Color
color Int
0xaaaaaa
  , lineNumberBackgroundColor :: Maybe Color
lineNumberBackgroundColor = forall a. Maybe a
Nothing
  , tokenStyles :: [(TokenType, TokenStyle)]
tokenStyles =
    [ (TokenType
KeywordTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x007020, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
DataTypeTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x902000 })
    , (TokenType
DecValTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x40a070 })
    , (TokenType
BaseNTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x40a070 })
    , (TokenType
FloatTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x40a070 })
    , (TokenType
CharTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x4070a0 })
    , (TokenType
StringTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x4070a0 })
    , (TokenType
CommentTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x60a0b0, tokenItalic :: Bool
tokenItalic = Bool
True })
    , (TokenType
OtherTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x007020 })
    , (TokenType
AlertTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xff0000, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
FunctionTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x06287e })
    , (TokenType
ErrorTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xff0000, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
WarningTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x60a0b0, tokenItalic :: Bool
tokenItalic = Bool
True, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
ConstantTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x880000 })
    , (TokenType
SpecialCharTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x4070a0 })
    , (TokenType
VerbatimStringTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x4070a0 })
    , (TokenType
SpecialStringTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xBB6688 })
    , (TokenType
ImportTok, TokenStyle
defStyle)
    , (TokenType
VariableTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x19177C })
    , (TokenType
ControlFlowTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x007020, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
OperatorTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x666666 })
    , (TokenType
BuiltInTok, TokenStyle
defStyle)
    , (TokenType
ExtensionTok, TokenStyle
defStyle)
    , (TokenType
PreprocessorTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xBC7A00 })
    , (TokenType
AttributeTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x7D9029 })
    , (TokenType
DocumentationTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xBA2121, tokenItalic :: Bool
tokenItalic = Bool
True })
    , (TokenType
AnnotationTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x60a0b0, tokenItalic :: Bool
tokenItalic = Bool
True, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
CommentVarTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x60a0b0, tokenItalic :: Bool
tokenItalic = Bool
True, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
InformationTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x60a0b0, tokenItalic :: Bool
tokenItalic = Bool
True, tokenBold :: Bool
tokenBold = Bool
True })
    ]
  }

-- | Style based on kate's default colors.
kate :: Style
kate :: Style
kate = Style{
    backgroundColor :: Maybe Color
backgroundColor = forall a. Maybe a
Nothing
  , defaultColor :: Maybe Color
defaultColor = forall a. Maybe a
Nothing
  , lineNumberColor :: Maybe Color
lineNumberColor = forall a. Maybe a
Nothing
  , lineNumberBackgroundColor :: Maybe Color
lineNumberBackgroundColor = Int -> Maybe Color
color Int
0xdddddd
  , tokenStyles :: [(TokenType, TokenStyle)]
tokenStyles =
    [ (TokenType
KeywordTok, TokenStyle
defStyle{ tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
DataTypeTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x800000 })
    , (TokenType
DecValTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x0000FF })
    , (TokenType
BaseNTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x0000FF })
    , (TokenType
FloatTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x800080 })
    , (TokenType
CharTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xFF00FF })
    , (TokenType
StringTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xDD0000 })
    , (TokenType
CommentTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x808080, tokenItalic :: Bool
tokenItalic = Bool
True })
    , (TokenType
AlertTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x00ff00, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
FunctionTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x000080 })
    , (TokenType
ErrorTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xff0000, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
WarningTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xff0000, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
ConstantTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x000000 })
    , (TokenType
SpecialCharTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xFF00FF })
    , (TokenType
VerbatimStringTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xDD0000 })
    , (TokenType
SpecialStringTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xDD0000 })
    , (TokenType
ImportTok, TokenStyle
defStyle)
    , (TokenType
VariableTok, TokenStyle
defStyle)
    , (TokenType
ControlFlowTok, TokenStyle
defStyle)
    , (TokenType
OperatorTok, TokenStyle
defStyle)
    , (TokenType
BuiltInTok, TokenStyle
defStyle)
    , (TokenType
ExtensionTok, TokenStyle
defStyle)
    , (TokenType
PreprocessorTok, TokenStyle
defStyle{ tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
AttributeTok, TokenStyle
defStyle)
    , (TokenType
DocumentationTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x808080, tokenItalic :: Bool
tokenItalic = Bool
True })
    , (TokenType
AnnotationTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x808080, tokenItalic :: Bool
tokenItalic = Bool
True, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
CommentVarTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x808080, tokenItalic :: Bool
tokenItalic = Bool
True, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
InformationTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x808080, tokenItalic :: Bool
tokenItalic = Bool
True, tokenBold :: Bool
tokenBold = Bool
True })
    ]
  }

-- | Style based on pygments's tango colors.
tango :: Style
tango :: Style
tango = Style{
    backgroundColor :: Maybe Color
backgroundColor = Int -> Maybe Color
color Int
0xf8f8f8
  , defaultColor :: Maybe Color
defaultColor = forall a. Maybe a
Nothing
  , lineNumberColor :: Maybe Color
lineNumberColor = Int -> Maybe Color
color Int
0xaaaaaa
  , lineNumberBackgroundColor :: Maybe Color
lineNumberBackgroundColor = forall a. Maybe a
Nothing
  , tokenStyles :: [(TokenType, TokenStyle)]
tokenStyles =
    [ (TokenType
KeywordTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x204a87, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
DataTypeTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x204a87 })
    , (TokenType
DecValTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x0000cf })
    , (TokenType
BaseNTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x0000cf })
    , (TokenType
FloatTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x0000cf })
    , (TokenType
CharTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x4e9a06 })
    , (TokenType
StringTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x4e9a06 })
    , (TokenType
CommentTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x8f5902, tokenItalic :: Bool
tokenItalic = Bool
True })
    , (TokenType
OtherTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x8f5902 })
    , (TokenType
AlertTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xef2929 })
    , (TokenType
FunctionTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x000000 })
    , (TokenType
ErrorTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xa40000, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
WarningTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x8f5902, tokenItalic :: Bool
tokenItalic = Bool
True,tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
ConstantTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x000000 })
    , (TokenType
SpecialCharTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x000000 })
    , (TokenType
VerbatimStringTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x4e9a06 })
    , (TokenType
SpecialStringTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x4e9a06 })
    , (TokenType
ImportTok, TokenStyle
defStyle)
    , (TokenType
VariableTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x000000 })
    , (TokenType
ControlFlowTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x204a87, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
OperatorTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xce5c00, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
PreprocessorTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x8f5902, tokenItalic :: Bool
tokenItalic = Bool
True} )
    , (TokenType
ExtensionTok, TokenStyle
defStyle)
    , (TokenType
AttributeTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xc4a000 })
    , (TokenType
DocumentationTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x8f5902, tokenItalic :: Bool
tokenItalic = Bool
True, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
AnnotationTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x8f5902, tokenItalic :: Bool
tokenItalic = Bool
True,tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
CommentVarTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x8f5902, tokenItalic :: Bool
tokenItalic = Bool
True,tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
InformationTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x8f5902, tokenItalic :: Bool
tokenItalic = Bool
True,tokenBold :: Bool
tokenBold = Bool
True })
    ]
  }

-- | Style based on ultraviolet's espresso_libre.css (dark background).
espresso :: Style
espresso :: Style
espresso = Style{
    backgroundColor :: Maybe Color
backgroundColor = Int -> Maybe Color
color Int
0x2A211C
  , defaultColor :: Maybe Color
defaultColor = Int -> Maybe Color
color Int
0xBDAE9D
  , lineNumberColor :: Maybe Color
lineNumberColor = Int -> Maybe Color
color Int
0xBDAE9D
  , lineNumberBackgroundColor :: Maybe Color
lineNumberBackgroundColor = Int -> Maybe Color
color Int
0x2A211C
  , tokenStyles :: [(TokenType, TokenStyle)]
tokenStyles =
    [ (TokenType
KeywordTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x43A8ED, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
DataTypeTok, TokenStyle
defStyle{ tokenUnderline :: Bool
tokenUnderline = Bool
True })
    , (TokenType
DecValTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x44AA43 })
    , (TokenType
BaseNTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x44AA43 })
    , (TokenType
FloatTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x44AA43 })
    , (TokenType
CharTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x049B0A })
    , (TokenType
StringTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x049B0A })
    , (TokenType
CommentTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x0066FF, tokenItalic :: Bool
tokenItalic = Bool
True })
    , (TokenType
AlertTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xffff00 })
    , (TokenType
FunctionTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xFF9358, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
ErrorTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xffff00, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
WarningTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xffff00, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
ConstantTok, TokenStyle
defStyle)
    , (TokenType
SpecialCharTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x049B0A })
    , (TokenType
VerbatimStringTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x049B0A })
    , (TokenType
SpecialStringTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x049B0A })
    , (TokenType
ImportTok, TokenStyle
defStyle)
    , (TokenType
VariableTok, TokenStyle
defStyle)
    , (TokenType
ControlFlowTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x43A8ED, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
OperatorTok, TokenStyle
defStyle)
    , (TokenType
BuiltInTok, TokenStyle
defStyle)
    , (TokenType
ExtensionTok, TokenStyle
defStyle)
    , (TokenType
PreprocessorTok, TokenStyle
defStyle{ tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
AttributeTok, TokenStyle
defStyle)
    , (TokenType
DocumentationTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x0066FF, tokenItalic :: Bool
tokenItalic = Bool
True })
    , (TokenType
AnnotationTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x0066FF, tokenItalic :: Bool
tokenItalic = Bool
True, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
CommentTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x0066FF, tokenItalic :: Bool
tokenItalic = Bool
True, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
InformationTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x0066FF, tokenItalic :: Bool
tokenItalic = Bool
True, tokenBold :: Bool
tokenBold = Bool
True })
    ]
  }

-- | Style based on haddock's source highlighting.
haddock :: Style
haddock :: Style
haddock = Style{
    backgroundColor :: Maybe Color
backgroundColor = forall a. Maybe a
Nothing
  , defaultColor :: Maybe Color
defaultColor = forall a. Maybe a
Nothing
  , lineNumberColor :: Maybe Color
lineNumberColor = Int -> Maybe Color
color Int
0xaaaaaa
  , lineNumberBackgroundColor :: Maybe Color
lineNumberBackgroundColor = forall a. Maybe a
Nothing
  , tokenStyles :: [(TokenType, TokenStyle)]
tokenStyles =
    [ (TokenType
KeywordTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x0000FF })
    , (TokenType
CharTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x008080 })
    , (TokenType
StringTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x008080 })
    , (TokenType
CommentTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x008000 })
    , (TokenType
OtherTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xff4000 })
    , (TokenType
AlertTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xff0000 })
    , (TokenType
ErrorTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xff0000, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
WarningTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x008000, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
ConstantTok, TokenStyle
defStyle)
    , (TokenType
SpecialCharTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x008080 })
    , (TokenType
VerbatimStringTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x008080 })
    , (TokenType
SpecialStringTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x008080 })
    , (TokenType
ImportTok, TokenStyle
defStyle)
    , (TokenType
VariableTok, TokenStyle
defStyle)
    , (TokenType
ControlFlowTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x0000FF })
    , (TokenType
OperatorTok, TokenStyle
defStyle)
    , (TokenType
BuiltInTok, TokenStyle
defStyle)
    , (TokenType
ExtensionTok, TokenStyle
defStyle)
    , (TokenType
PreprocessorTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xff4000 })
    , (TokenType
DocumentationTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x008000 })
    , (TokenType
AnnotationTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x008000 })
    , (TokenType
CommentVarTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x008000 })
    , (TokenType
AttributeTok, TokenStyle
defStyle)
    , (TokenType
InformationTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x008000 })
    ]
  }

-- | Style with no colors.
monochrome :: Style
monochrome :: Style
monochrome = Style{
    backgroundColor :: Maybe Color
backgroundColor = forall a. Maybe a
Nothing
  , defaultColor :: Maybe Color
defaultColor = forall a. Maybe a
Nothing
  , lineNumberColor :: Maybe Color
lineNumberColor = forall a. Maybe a
Nothing
  , lineNumberBackgroundColor :: Maybe Color
lineNumberBackgroundColor = forall a. Maybe a
Nothing
  , tokenStyles :: [(TokenType, TokenStyle)]
tokenStyles =
    [ (TokenType
KeywordTok, TokenStyle
defStyle{ tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
DataTypeTok, TokenStyle
defStyle{ tokenUnderline :: Bool
tokenUnderline = Bool
True })
    , (TokenType
CommentTok, TokenStyle
defStyle{ tokenItalic :: Bool
tokenItalic = Bool
True })
    , (TokenType
AlertTok, TokenStyle
defStyle{ tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
ErrorTok, TokenStyle
defStyle{ tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
WarningTok, TokenStyle
defStyle{ tokenItalic :: Bool
tokenItalic = Bool
True })
    , (TokenType
ControlFlowTok, TokenStyle
defStyle{ tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
PreprocessorTok, TokenStyle
defStyle{ tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
DocumentationTok, TokenStyle
defStyle{ tokenItalic :: Bool
tokenItalic = Bool
True })
    , (TokenType
AnnotationTok, TokenStyle
defStyle{ tokenItalic :: Bool
tokenItalic = Bool
True })
    , (TokenType
CommentVarTok, TokenStyle
defStyle{ tokenItalic :: Bool
tokenItalic = Bool
True })
    , (TokenType
InformationTok, TokenStyle
defStyle{ tokenItalic :: Bool
tokenItalic = Bool
True })
    ]
  }

-- | Style based on the popular zenburn vim color scheme
zenburn :: Style
zenburn :: Style
zenburn = Style{
    backgroundColor :: Maybe Color
backgroundColor = Int -> Maybe Color
color Int
0x303030
  , defaultColor :: Maybe Color
defaultColor = Int -> Maybe Color
color Int
0xcccccc
  , lineNumberColor :: Maybe Color
lineNumberColor = forall a. Maybe a
Nothing
  , lineNumberBackgroundColor :: Maybe Color
lineNumberBackgroundColor = forall a. Maybe a
Nothing
  , tokenStyles :: [(TokenType, TokenStyle)]
tokenStyles =
    [ (TokenType
KeywordTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xf0dfaf })
    , (TokenType
DataTypeTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xdfdfbf })
    , (TokenType
DecValTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xdcdccc })
    , (TokenType
BaseNTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xdca3a3 })
    , (TokenType
FloatTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xc0bed1 })
    , (TokenType
CharTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xdca3a3 })
    , (TokenType
StringTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xcc9393 })
    , (TokenType
CommentTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x7f9f7f })
    , (TokenType
OtherTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xefef8f })
    , (TokenType
AlertTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xffcfaf })
    , (TokenType
FunctionTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xefef8f })
    , (TokenType
ErrorTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xc3bf9f })
    , (TokenType
WarningTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x7f9f7f, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
ConstantTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xdca3a3, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
SpecialCharTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xdca3a3 })
    , (TokenType
VerbatimStringTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xcc9393 })
    , (TokenType
SpecialStringTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xcc9393 })
    , (TokenType
ImportTok, TokenStyle
defStyle)
    , (TokenType
VariableTok, TokenStyle
defStyle)
    , (TokenType
ControlFlowTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xf0dfaf })
    , (TokenType
OperatorTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xf0efd0 })
    , (TokenType
BuiltInTok, TokenStyle
defStyle)
    , (TokenType
ExtensionTok, TokenStyle
defStyle)
    , (TokenType
PreprocessorTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0xffcfaf, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
AttributeTok, TokenStyle
defStyle)
    , (TokenType
DocumentationTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x7f9f7f })
    , (TokenType
AnnotationTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x7f9f7f, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
CommentVarTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x7f9f7f, tokenBold :: Bool
tokenBold = Bool
True })
    , (TokenType
InformationTok, TokenStyle
defStyle{ tokenColor :: Maybe Color
tokenColor = Int -> Maybe Color
color Int
0x7f9f7f, tokenBold :: Bool
tokenBold = Bool
True })
    ]
  }