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