module Skylighting.Styles (
    parseTheme
  , kate
  , breezeDark
  , pygments
  , espresso
  , tango
  , haddock
  , monochrome
  , zenburn) where

import Data.Aeson (eitherDecode)
import Data.ByteString.Lazy (ByteString)
import qualified Data.Map as Map
import Skylighting.Types

-- | Parse a KDE theme JSON document into a skylighting Style.
parseTheme :: ByteString -> Either String Style
parseTheme :: ByteString -> Either String Style
parseTheme = ByteString -> Either String Style
forall a. FromJSON a => ByteString -> Either String a
eitherDecode

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

-- | Style based on kate's default colors.
kate :: Style
kate :: Style
kate = Style :: Map TokenType TokenStyle
-> Maybe Color
-> Maybe Color
-> Maybe Color
-> Maybe Color
-> Style
Style{
      tokenStyles :: Map TokenType TokenStyle
tokenStyles = [(TokenType, TokenStyle)] -> Map TokenType TokenStyle
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList
        [ ( TokenType
KeywordTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
31 Word8
28 Word8
27), tokenBold :: Bool
tokenBold = Bool
True })
        , ( TokenType
DataTypeTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
0 Word8
87 Word8
174) })
        , ( TokenType
DecValTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
176 Word8
128 Word8
0) })
        , ( TokenType
BaseNTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
176 Word8
128 Word8
0) })
        , ( TokenType
FloatTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
176 Word8
128 Word8
0) })
        , ( TokenType
ConstantTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
170 Word8
85 Word8
0) })
        , ( TokenType
CharTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
146 Word8
76 Word8
157) })
        , ( TokenType
SpecialCharTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
61 Word8
174 Word8
233) })
        , ( TokenType
StringTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
191 Word8
3 Word8
3) })
        , ( TokenType
VerbatimStringTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
191 Word8
3 Word8
3) })
        , ( TokenType
SpecialStringTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
255 Word8
85 Word8
0) })
        , ( TokenType
ImportTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
255 Word8
85 Word8
0) })
        , ( TokenType
CommentTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
137 Word8
136 Word8
135) })
        , ( TokenType
DocumentationTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
96 Word8
120 Word8
128) })
        , ( TokenType
AnnotationTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
202 Word8
96 Word8
202) })
        , ( TokenType
CommentVarTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
0 Word8
149 Word8
255) })
        , ( TokenType
OtherTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
0 Word8
110 Word8
40) })
        , ( TokenType
FunctionTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
100 Word8
74 Word8
155) })
        , ( TokenType
VariableTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
0 Word8
87 Word8
174) })
        , ( TokenType
ControlFlowTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
31 Word8
28 Word8
27), tokenBold :: Bool
tokenBold = Bool
True })
        , ( TokenType
OperatorTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
31 Word8
28 Word8
27) })
        , ( TokenType
BuiltInTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
100 Word8
74 Word8
155), tokenBold :: Bool
tokenBold = Bool
True })
        , ( TokenType
ExtensionTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
0 Word8
149 Word8
255), tokenBold :: Bool
tokenBold = Bool
True })
        , ( TokenType
PreprocessorTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
0 Word8
110 Word8
40) })
        , ( TokenType
AttributeTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
0 Word8
87 Word8
174) })
        , ( TokenType
RegionMarkerTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
0 Word8
87 Word8
174), tokenBackground :: Maybe Color
tokenBackground = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
224 Word8
233 Word8
248)} )
        , ( TokenType
InformationTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
176 Word8
128 Word8
0) })
        , ( TokenType
WarningTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
191 Word8
3 Word8
3) })
        , ( TokenType
AlertTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
191 Word8
3 Word8
3), tokenBackground :: Maybe Color
tokenBackground = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
247 Word8
230 Word8
230), tokenBold :: Bool
tokenBold = Bool
True })
        , ( TokenType
ErrorTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
191 Word8
3 Word8
3), tokenUnderline :: Bool
tokenUnderline = Bool
True })
        , ( TokenType
NormalTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
31 Word8
28 Word8
27) })
        ]
    , defaultColor :: Maybe Color
defaultColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
31 Word8
28 Word8
27)
    , backgroundColor :: Maybe Color
backgroundColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
255 Word8
255 Word8
255)
    , lineNumberColor :: Maybe Color
lineNumberColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
160 Word8
160 Word8
160)
    , lineNumberBackgroundColor :: Maybe Color
lineNumberBackgroundColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
255 Word8
255 Word8
255)
    }

-- | Style from the breeze-dark KDE syntax highlighting theme.
breezeDark :: Style
breezeDark :: Style
breezeDark = Style :: Map TokenType TokenStyle
-> Maybe Color
-> Maybe Color
-> Maybe Color
-> Maybe Color
-> Style
Style
    { tokenStyles :: Map TokenType TokenStyle
tokenStyles = [(TokenType, TokenStyle)] -> Map TokenType TokenStyle
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList
        [ ( TokenType
KeywordTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
207 Word8
207 Word8
194), tokenBold :: Bool
tokenBold = Bool
True })
        , ( TokenType
DataTypeTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
41 Word8
128 Word8
185) })
        , ( TokenType
DecValTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
246 Word8
116 Word8
0) })
        , ( TokenType
BaseNTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
246 Word8
116 Word8
0) })
        , ( TokenType
FloatTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
246 Word8
116 Word8
0) })
        , ( TokenType
ConstantTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
39 Word8
174 Word8
174), tokenBold :: Bool
tokenBold = Bool
True })
        , ( TokenType
CharTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
61 Word8
174 Word8
233) })
        , ( TokenType
SpecialCharTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
61 Word8
174 Word8
233) })
        , ( TokenType
StringTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
244 Word8
79 Word8
79) })
        , ( TokenType
VerbatimStringTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
218 Word8
68 Word8
83) })
        , ( TokenType
SpecialStringTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
218 Word8
68 Word8
83) })
        , ( TokenType
ImportTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
39 Word8
174 Word8
96) })
        , ( TokenType
CommentTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
122 Word8
124 Word8
125) })
        , ( TokenType
DocumentationTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
164 Word8
51 Word8
64) })
        , ( TokenType
AnnotationTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
63 Word8
128 Word8
88) })
        , ( TokenType
CommentVarTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
127 Word8
140 Word8
141) })
        , ( TokenType
OtherTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
39 Word8
174 Word8
96) })
        , ( TokenType
FunctionTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
142 Word8
68 Word8
173) })
        , ( TokenType
VariableTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
39 Word8
174 Word8
174) })
        , ( TokenType
ControlFlowTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
253 Word8
188 Word8
75), tokenBold :: Bool
tokenBold = Bool
True })
        , ( TokenType
OperatorTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
207 Word8
207 Word8
194) })
        , ( TokenType
BuiltInTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
127 Word8
140 Word8
141) })
        , ( TokenType
ExtensionTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
0 Word8
153 Word8
255), tokenBold :: Bool
tokenBold = Bool
True })
        , ( TokenType
PreprocessorTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
39 Word8
174 Word8
96) })
        , ( TokenType
AttributeTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
41 Word8
128 Word8
185) })
        , ( TokenType
RegionMarkerTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
41 Word8
128 Word8
185), tokenBackground :: Maybe Color
tokenBackground = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
21 Word8
48 Word8
66) })
        , ( TokenType
InformationTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
196 Word8
91 Word8
0) })
        , ( TokenType
WarningTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
218 Word8
68 Word8
83) })
        , ( TokenType
AlertTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
149 Word8
218 Word8
76), tokenBackground :: Maybe Color
tokenBackground = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
77 Word8
31 Word8
36), tokenBold :: Bool
tokenBold = Bool
True })
        , ( TokenType
ErrorTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
218 Word8
68 Word8
83), tokenUnderline :: Bool
tokenUnderline = Bool
True })
        , ( TokenType
NormalTok, TokenStyle
defStyle { tokenColor :: Maybe Color
tokenColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
207 Word8
207 Word8
194) })
        ]
    , defaultColor :: Maybe Color
defaultColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
207 Word8
207 Word8
194)
    , backgroundColor :: Maybe Color
backgroundColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
35 Word8
38 Word8
41)
    , lineNumberColor :: Maybe Color
lineNumberColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
122 Word8
124 Word8
125)
    , lineNumberBackgroundColor :: Maybe Color
lineNumberBackgroundColor = Color -> Maybe Color
forall a. a -> Maybe a
Just (Word8 -> Word8 -> Word8 -> Color
RGB Word8
35 Word8
38 Word8
41)
    }

-- | Style based on pygments's default colors.
pygments :: Style
pygments :: Style
pygments = Style :: Map TokenType TokenStyle
-> Maybe Color
-> Maybe Color
-> Maybe Color
-> Maybe Color
-> Style
Style{
    backgroundColor :: Maybe Color
backgroundColor = Maybe Color
forall a. Maybe a
Nothing
  , defaultColor :: Maybe Color
defaultColor = Maybe Color
forall a. Maybe a
Nothing
  , lineNumberColor :: Maybe Color
lineNumberColor = Int -> Maybe Color
color Int
0xaaaaaa
  , lineNumberBackgroundColor :: Maybe Color
lineNumberBackgroundColor = Maybe Color
forall a. Maybe a
Nothing
  , tokenStyles :: Map TokenType TokenStyle
tokenStyles = [(TokenType, TokenStyle)] -> Map TokenType TokenStyle
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList
    [ (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 pygments's tango colors.
tango :: Style
tango :: Style
tango = Style :: Map TokenType TokenStyle
-> Maybe Color
-> Maybe Color
-> Maybe Color
-> Maybe Color
-> Style
Style{
    backgroundColor :: Maybe Color
backgroundColor = Int -> Maybe Color
color Int
0xf8f8f8
  , defaultColor :: Maybe Color
defaultColor = Maybe Color
forall a. Maybe a
Nothing
  , lineNumberColor :: Maybe Color
lineNumberColor = Int -> Maybe Color
color Int
0xaaaaaa
  , lineNumberBackgroundColor :: Maybe Color
lineNumberBackgroundColor = Maybe Color
forall a. Maybe a
Nothing
  , tokenStyles :: Map TokenType TokenStyle
tokenStyles = [(TokenType, TokenStyle)] -> Map TokenType TokenStyle
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList
    [ (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 :: Map TokenType TokenStyle
-> Maybe Color
-> Maybe Color
-> Maybe Color
-> Maybe Color
-> Style
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 :: Map TokenType TokenStyle
tokenStyles = [(TokenType, TokenStyle)] -> Map TokenType TokenStyle
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList
    [ (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 :: Map TokenType TokenStyle
-> Maybe Color
-> Maybe Color
-> Maybe Color
-> Maybe Color
-> Style
Style{
    backgroundColor :: Maybe Color
backgroundColor = Maybe Color
forall a. Maybe a
Nothing
  , defaultColor :: Maybe Color
defaultColor = Maybe Color
forall a. Maybe a
Nothing
  , lineNumberColor :: Maybe Color
lineNumberColor = Int -> Maybe Color
color Int
0xaaaaaa
  , lineNumberBackgroundColor :: Maybe Color
lineNumberBackgroundColor = Maybe Color
forall a. Maybe a
Nothing
  , tokenStyles :: Map TokenType TokenStyle
tokenStyles = [(TokenType, TokenStyle)] -> Map TokenType TokenStyle
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList
    [ (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 :: Map TokenType TokenStyle
-> Maybe Color
-> Maybe Color
-> Maybe Color
-> Maybe Color
-> Style
Style{
    backgroundColor :: Maybe Color
backgroundColor = Maybe Color
forall a. Maybe a
Nothing
  , defaultColor :: Maybe Color
defaultColor = Maybe Color
forall a. Maybe a
Nothing
  , lineNumberColor :: Maybe Color
lineNumberColor = Maybe Color
forall a. Maybe a
Nothing
  , lineNumberBackgroundColor :: Maybe Color
lineNumberBackgroundColor = Maybe Color
forall a. Maybe a
Nothing
  , tokenStyles :: Map TokenType TokenStyle
tokenStyles = [(TokenType, TokenStyle)] -> Map TokenType TokenStyle
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList
    [ (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 :: Map TokenType TokenStyle
-> Maybe Color
-> Maybe Color
-> Maybe Color
-> Maybe Color
-> Style
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 = Maybe Color
forall a. Maybe a
Nothing
  , lineNumberBackgroundColor :: Maybe Color
lineNumberBackgroundColor = Maybe Color
forall a. Maybe a
Nothing
  , tokenStyles :: Map TokenType TokenStyle
tokenStyles = [(TokenType, TokenStyle)] -> Map TokenType TokenStyle
forall k a. Ord k => [(k, a)] -> Map k a
Map.fromList
    [ (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 })
    ]
  }