highlighter-0.2: src/Text/Highlighter/Lexers/Diff.hs
module Text.Highlighter.Lexers.Diff (lexer) where
import Text.Regex.PCRE.Light
import Text.Highlighter.Types
lexer :: Lexer
lexer = Lexer
{ lName = "Diff"
, lAliases = ["diff", "udiff"]
, lExtensions = [".diff", ".patch"]
, lMimetypes = ["text/x-diff", "text/x-patch"]
, lStart = root'
, lFlags = [multiline]
}
root' :: TokenMatcher
root' =
[ tok " .*\\n" (Arbitrary "Text")
, tok "\\+.*\\n" (Arbitrary "Generic" :. Arbitrary "Inserted")
, tok "-.*\\n" (Arbitrary "Generic" :. Arbitrary "Deleted")
, tok "!.*\\n" (Arbitrary "Generic" :. Arbitrary "Strong")
, tok "@.*\\n" (Arbitrary "Generic" :. Arbitrary "Subheading")
, tok "([Ii]ndex|diff).*\\n" (Arbitrary "Generic" :. Arbitrary "Heading")
, tok "=.*\\n" (Arbitrary "Generic" :. Arbitrary "Heading")
, tok ".*\\n" (Arbitrary "Text")
]