module Text.Highlighter.Lexers.Ini (lexer) where import Text.Regex.PCRE.Light import Text.Highlighter.Types lexer :: Lexer lexer = Lexer { lName = "INI" , lAliases = ["ini", "cfg"] , lExtensions = [".ini", ".cfg"] , lMimetypes = ["text/x-ini"] , lStart = root' , lFlags = [multiline] } root' :: TokenMatcher root' = [ tok "\\s+" (Arbitrary "Text") , tok "[;#].*?$" (Arbitrary "Comment") , tok "\\[.*?\\]$" (Arbitrary "Keyword") , tok "(.*?)([ \\t]*)(=)([ \\t]*)(.*(?:\\n[ \\t].+)*)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Attribute"), (Arbitrary "Text"), (Arbitrary "Operator"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String")]) ]