{- | Module : Text.Highlighting.Kate.Styles Copyright : Copyright (C) 2011 John MacFarlane License : GNU GPL, version 2 or above Maintainer : John MacFarlane 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 = toColor -- | Style based on pygments's default colors. pygments :: Style pygments = Style{ backgroundColor = Nothing , defaultColor = Nothing , lineNumberColor = color 0xaaaaaa , lineNumberBackgroundColor = Nothing , tokenStyles = [ (KeywordTok, defStyle{ tokenColor = color 0x007020, tokenBold = True }) , (DataTypeTok, defStyle{ tokenColor = color 0x902000 }) , (DecValTok, defStyle{ tokenColor = color 0x40a070 }) , (BaseNTok, defStyle{ tokenColor = color 0x40a070 }) , (FloatTok, defStyle{ tokenColor = color 0x40a070 }) , (CharTok, defStyle{ tokenColor = color 0x4070a0 }) , (StringTok, defStyle{ tokenColor = color 0x4070a0 }) , (CommentTok, defStyle{ tokenColor = color 0x60a0b0, tokenItalic = True }) , (OtherTok, defStyle{ tokenColor = color 0x007020 }) , (AlertTok, defStyle{ tokenColor = color 0xff0000, tokenBold = True }) , (FunctionTok, defStyle{ tokenColor = color 0x06287e }) , (ErrorTok, defStyle{ tokenColor = color 0xff0000, tokenBold = True }) , (WarningTok, defStyle{ tokenColor = color 0x60a0b0, tokenItalic = True, tokenBold = True }) , (ConstantTok, defStyle{ tokenColor = color 0x880000 }) , (SpecialCharTok, defStyle{ tokenColor = color 0x4070a0 }) , (VerbatimStringTok, defStyle{ tokenColor = color 0x4070a0 }) , (SpecialStringTok, defStyle{ tokenColor = color 0xBB6688 }) , (ImportTok, defStyle) , (VariableTok, defStyle{ tokenColor = color 0x19177C }) , (ControlFlowTok, defStyle{ tokenColor = color 0x007020, tokenBold = True }) , (OperatorTok, defStyle{ tokenColor = color 0x666666 }) , (BuiltInTok, defStyle) , (ExtensionTok, defStyle) , (PreprocessorTok, defStyle{ tokenColor = color 0xBC7A00 }) , (AttributeTok, defStyle{ tokenColor = color 0x7D9029 }) , (DocumentationTok, defStyle{ tokenColor = color 0xBA2121, tokenItalic = True }) , (AnnotationTok, defStyle{ tokenColor = color 0x60a0b0, tokenItalic = True, tokenBold = True }) , (CommentVarTok, defStyle{ tokenColor = color 0x60a0b0, tokenItalic = True, tokenBold = True }) , (InformationTok, defStyle{ tokenColor = color 0x60a0b0, tokenItalic = True, tokenBold = True }) ] } -- | Style based on kate's default colors. kate :: Style kate = Style{ backgroundColor = Nothing , defaultColor = Nothing , lineNumberColor = Nothing , lineNumberBackgroundColor = color 0xdddddd , tokenStyles = [ (KeywordTok, defStyle{ tokenBold = True }) , (DataTypeTok, defStyle{ tokenColor = color 0x800000 }) , (DecValTok, defStyle{ tokenColor = color 0x0000FF }) , (BaseNTok, defStyle{ tokenColor = color 0x0000FF }) , (FloatTok, defStyle{ tokenColor = color 0x800080 }) , (CharTok, defStyle{ tokenColor = color 0xFF00FF }) , (StringTok, defStyle{ tokenColor = color 0xDD0000 }) , (CommentTok, defStyle{ tokenColor = color 0x808080, tokenItalic = True }) , (AlertTok, defStyle{ tokenColor = color 0x00ff00, tokenBold = True }) , (FunctionTok, defStyle{ tokenColor = color 0x000080 }) , (ErrorTok, defStyle{ tokenColor = color 0xff0000, tokenBold = True }) , (WarningTok, defStyle{ tokenColor = color 0xff0000, tokenBold = True }) , (ConstantTok, defStyle{ tokenColor = color 0x000000 }) , (SpecialCharTok, defStyle{ tokenColor = color 0xFF00FF }) , (VerbatimStringTok, defStyle{ tokenColor = color 0xDD0000 }) , (SpecialStringTok, defStyle{ tokenColor = color 0xDD0000 }) , (ImportTok, defStyle) , (VariableTok, defStyle) , (ControlFlowTok, defStyle) , (OperatorTok, defStyle) , (BuiltInTok, defStyle) , (ExtensionTok, defStyle) , (PreprocessorTok, defStyle{ tokenBold = True }) , (AttributeTok, defStyle) , (DocumentationTok, defStyle{ tokenColor = color 0x808080, tokenItalic = True }) , (AnnotationTok, defStyle{ tokenColor = color 0x808080, tokenItalic = True, tokenBold = True }) , (CommentVarTok, defStyle{ tokenColor = color 0x808080, tokenItalic = True, tokenBold = True }) , (InformationTok, defStyle{ tokenColor = color 0x808080, tokenItalic = True, tokenBold = True }) ] } -- | Style based on pygments's tango colors. tango :: Style tango = Style{ backgroundColor = color 0xf8f8f8 , defaultColor = Nothing , lineNumberColor = color 0xaaaaaa , lineNumberBackgroundColor = Nothing , tokenStyles = [ (KeywordTok, defStyle{ tokenColor = color 0x204a87, tokenBold = True }) , (DataTypeTok, defStyle{ tokenColor = color 0x204a87 }) , (DecValTok, defStyle{ tokenColor = color 0x0000cf }) , (BaseNTok, defStyle{ tokenColor = color 0x0000cf }) , (FloatTok, defStyle{ tokenColor = color 0x0000cf }) , (CharTok, defStyle{ tokenColor = color 0x4e9a06 }) , (StringTok, defStyle{ tokenColor = color 0x4e9a06 }) , (CommentTok, defStyle{ tokenColor = color 0x8f5902, tokenItalic = True }) , (OtherTok, defStyle{ tokenColor = color 0x8f5902 }) , (AlertTok, defStyle{ tokenColor = color 0xef2929 }) , (FunctionTok, defStyle{ tokenColor = color 0x000000 }) , (ErrorTok, defStyle{ tokenColor = color 0xa40000, tokenBold = True }) , (WarningTok, defStyle{ tokenColor = color 0x8f5902, tokenItalic = True,tokenBold = True }) , (ConstantTok, defStyle{ tokenColor = color 0x000000 }) , (SpecialCharTok, defStyle{ tokenColor = color 0x000000 }) , (VerbatimStringTok, defStyle{ tokenColor = color 0x4e9a06 }) , (SpecialStringTok, defStyle{ tokenColor = color 0x4e9a06 }) , (ImportTok, defStyle) , (VariableTok, defStyle{ tokenColor = color 0x000000 }) , (ControlFlowTok, defStyle{ tokenColor = color 0x204a87, tokenBold = True }) , (OperatorTok, defStyle{ tokenColor = color 0xce5c00, tokenBold = True }) , (PreprocessorTok, defStyle{ tokenColor = color 0x8f5902, tokenItalic = True} ) , (ExtensionTok, defStyle) , (AttributeTok, defStyle{ tokenColor = color 0xc4a000 }) , (DocumentationTok, defStyle{ tokenColor = color 0x8f5902, tokenItalic = True, tokenBold = True }) , (AnnotationTok, defStyle{ tokenColor = color 0x8f5902, tokenItalic = True,tokenBold = True }) , (CommentVarTok, defStyle{ tokenColor = color 0x8f5902, tokenItalic = True,tokenBold = True }) , (InformationTok, defStyle{ tokenColor = color 0x8f5902, tokenItalic = True,tokenBold = True }) ] } -- | Style based on ultraviolet's espresso_libre.css (dark background). espresso :: Style espresso = Style{ backgroundColor = color 0x2A211C , defaultColor = color 0xBDAE9D , lineNumberColor = color 0xBDAE9D , lineNumberBackgroundColor = color 0x2A211C , tokenStyles = [ (KeywordTok, defStyle{ tokenColor = color 0x43A8ED, tokenBold = True }) , (DataTypeTok, defStyle{ tokenUnderline = True }) , (DecValTok, defStyle{ tokenColor = color 0x44AA43 }) , (BaseNTok, defStyle{ tokenColor = color 0x44AA43 }) , (FloatTok, defStyle{ tokenColor = color 0x44AA43 }) , (CharTok, defStyle{ tokenColor = color 0x049B0A }) , (StringTok, defStyle{ tokenColor = color 0x049B0A }) , (CommentTok, defStyle{ tokenColor = color 0x0066FF, tokenItalic = True }) , (AlertTok, defStyle{ tokenColor = color 0xffff00 }) , (FunctionTok, defStyle{ tokenColor = color 0xFF9358, tokenBold = True }) , (ErrorTok, defStyle{ tokenColor = color 0xffff00, tokenBold = True }) , (WarningTok, defStyle{ tokenColor = color 0xffff00, tokenBold = True }) , (ConstantTok, defStyle) , (SpecialCharTok, defStyle{ tokenColor = color 0x049B0A }) , (VerbatimStringTok, defStyle{ tokenColor = color 0x049B0A }) , (SpecialStringTok, defStyle{ tokenColor = color 0x049B0A }) , (ImportTok, defStyle) , (VariableTok, defStyle) , (ControlFlowTok, defStyle{ tokenColor = color 0x43A8ED, tokenBold = True }) , (OperatorTok, defStyle) , (BuiltInTok, defStyle) , (ExtensionTok, defStyle) , (PreprocessorTok, defStyle{ tokenBold = True }) , (AttributeTok, defStyle) , (DocumentationTok, defStyle{ tokenColor = color 0x0066FF, tokenItalic = True }) , (AnnotationTok, defStyle{ tokenColor = color 0x0066FF, tokenItalic = True, tokenBold = True }) , (CommentTok, defStyle{ tokenColor = color 0x0066FF, tokenItalic = True, tokenBold = True }) , (InformationTok, defStyle{ tokenColor = color 0x0066FF, tokenItalic = True, tokenBold = True }) ] } -- | Style based on haddock's source highlighting. haddock :: Style haddock = Style{ backgroundColor = Nothing , defaultColor = Nothing , lineNumberColor = color 0xaaaaaa , lineNumberBackgroundColor = Nothing , tokenStyles = [ (KeywordTok, defStyle{ tokenColor = color 0x0000FF }) , (CharTok, defStyle{ tokenColor = color 0x008080 }) , (StringTok, defStyle{ tokenColor = color 0x008080 }) , (CommentTok, defStyle{ tokenColor = color 0x008000 }) , (OtherTok, defStyle{ tokenColor = color 0xff4000 }) , (AlertTok, defStyle{ tokenColor = color 0xff0000 }) , (ErrorTok, defStyle{ tokenColor = color 0xff0000, tokenBold = True }) , (WarningTok, defStyle{ tokenColor = color 0x008000, tokenBold = True }) , (ConstantTok, defStyle) , (SpecialCharTok, defStyle{ tokenColor = color 0x008080 }) , (VerbatimStringTok, defStyle{ tokenColor = color 0x008080 }) , (SpecialStringTok, defStyle{ tokenColor = color 0x008080 }) , (ImportTok, defStyle) , (VariableTok, defStyle) , (ControlFlowTok, defStyle{ tokenColor = color 0x0000FF }) , (OperatorTok, defStyle) , (BuiltInTok, defStyle) , (ExtensionTok, defStyle) , (PreprocessorTok, defStyle{ tokenColor = color 0xff4000 }) , (DocumentationTok, defStyle{ tokenColor = color 0x008000 }) , (AnnotationTok, defStyle{ tokenColor = color 0x008000 }) , (CommentVarTok, defStyle{ tokenColor = color 0x008000 }) , (AttributeTok, defStyle) , (InformationTok, defStyle{ tokenColor = color 0x008000 }) ] } -- | Style with no colors. monochrome :: Style monochrome = Style{ backgroundColor = Nothing , defaultColor = Nothing , lineNumberColor = Nothing , lineNumberBackgroundColor = Nothing , tokenStyles = [ (KeywordTok, defStyle{ tokenBold = True }) , (DataTypeTok, defStyle{ tokenUnderline = True }) , (CommentTok, defStyle{ tokenItalic = True }) , (AlertTok, defStyle{ tokenBold = True }) , (ErrorTok, defStyle{ tokenBold = True }) , (WarningTok, defStyle{ tokenItalic = True }) , (ControlFlowTok, defStyle{ tokenBold = True }) , (PreprocessorTok, defStyle{ tokenBold = True }) , (DocumentationTok, defStyle{ tokenItalic = True }) , (AnnotationTok, defStyle{ tokenItalic = True }) , (CommentVarTok, defStyle{ tokenItalic = True }) , (InformationTok, defStyle{ tokenItalic = True }) ] } -- | Style based on the popular zenburn vim color scheme zenburn :: Style zenburn = Style{ backgroundColor = color 0x303030 , defaultColor = color 0xcccccc , lineNumberColor = Nothing , lineNumberBackgroundColor = Nothing , tokenStyles = [ (KeywordTok, defStyle{ tokenColor = color 0xf0dfaf }) , (DataTypeTok, defStyle{ tokenColor = color 0xdfdfbf }) , (DecValTok, defStyle{ tokenColor = color 0xdcdccc }) , (BaseNTok, defStyle{ tokenColor = color 0xdca3a3 }) , (FloatTok, defStyle{ tokenColor = color 0xc0bed1 }) , (CharTok, defStyle{ tokenColor = color 0xdca3a3 }) , (StringTok, defStyle{ tokenColor = color 0xcc9393 }) , (CommentTok, defStyle{ tokenColor = color 0x7f9f7f }) , (OtherTok, defStyle{ tokenColor = color 0xefef8f }) , (AlertTok, defStyle{ tokenColor = color 0xffcfaf }) , (FunctionTok, defStyle{ tokenColor = color 0xefef8f }) , (ErrorTok, defStyle{ tokenColor = color 0xc3bf9f }) , (WarningTok, defStyle{ tokenColor = color 0x7f9f7f, tokenBold = True }) , (ConstantTok, defStyle{ tokenColor = color 0xdca3a3, tokenBold = True }) , (SpecialCharTok, defStyle{ tokenColor = color 0xdca3a3 }) , (VerbatimStringTok, defStyle{ tokenColor = color 0xcc9393 }) , (SpecialStringTok, defStyle{ tokenColor = color 0xcc9393 }) , (ImportTok, defStyle) , (VariableTok, defStyle) , (ControlFlowTok, defStyle{ tokenColor = color 0xf0dfaf }) , (OperatorTok, defStyle{ tokenColor = color 0xf0efd0 }) , (BuiltInTok, defStyle) , (ExtensionTok, defStyle) , (PreprocessorTok, defStyle{ tokenColor = color 0xffcfaf, tokenBold = True }) , (AttributeTok, defStyle) , (DocumentationTok, defStyle{ tokenColor = color 0x7f9f7f }) , (AnnotationTok, defStyle{ tokenColor = color 0x7f9f7f, tokenBold = True }) , (CommentVarTok, defStyle{ tokenColor = color 0x7f9f7f, tokenBold = True }) , (InformationTok, defStyle{ tokenColor = color 0x7f9f7f, tokenBold = True }) ] }