module FormatPangoMarkup (formatPangoMarkup) where
import Text.Highlighting.Kate
import Graphics.Rendering.Pango
-- TODO: should use blaze-builder
tagTok :: Token -> String
tagTok (KeywordTok, s) = "" ++ escapeMarkup s ++ ""
tagTok (DataTypeTok, s) = "" ++ escapeMarkup s ++ ""
tagTok (DecValTok, s) = "" ++ escapeMarkup s ++ ""
tagTok (BaseNTok, s) = "" ++ escapeMarkup s ++ ""
tagTok (FloatTok, s) = "" ++ escapeMarkup s ++ ""
tagTok (CharTok, s) = "" ++ escapeMarkup s ++ ""
tagTok (StringTok, s) = "" ++ escapeMarkup s ++ ""
tagTok (CommentTok, s) = "" ++ escapeMarkup s ++ ""
tagTok (OtherTok, s) = "" ++ escapeMarkup s ++ ""
tagTok (AlertTok, s) = "" ++ escapeMarkup s ++ ""
tagTok (FunctionTok, s) = "" ++ escapeMarkup s ++ ""
tagTok (RegionMarkerTok, s) = escapeMarkup s
tagTok (ErrorTok, s) = "" ++ escapeMarkup s ++ ""
tagTok (NormalTok, s) = escapeMarkup s
tagLine :: SourceLine -> [String]
tagLine = fmap tagTok
formatPangoMarkup :: String -> String -> String
formatPangoMarkup lang = unlines . fmap (concat . tagLine) . highlightAs lang