highlighter-0.2: src/Text/Highlighter/Lexers/LighttpdConf.hs
module Text.Highlighter.Lexers.LighttpdConf (lexer) where
import Text.Regex.PCRE.Light
import Text.Highlighter.Types
lexer :: Lexer
lexer = Lexer
{ lName = "Lighttpd configuration file"
, lAliases = ["lighty", "lighttpd"]
, lExtensions = []
, lMimetypes = ["text/x-lighttpd-conf"]
, lStart = root'
, lFlags = [multiline]
}
root' :: TokenMatcher
root' =
[ tok "#.*\\n" (Arbitrary "Comment" :. Arbitrary "Single")
, tok "/\\S*" (Arbitrary "Name")
, tok "[a-zA-Z._-]+" (Arbitrary "Keyword")
, tok "\\d+\\.\\d+\\.\\d+\\.\\d+(?:/\\d+)?" (Arbitrary "Literal" :. Arbitrary "Number")
, tok "[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number")
, tok "=>|=\126|\\+=|==|=|\\+" (Arbitrary "Operator")
, tok "\\$[A-Z]+" (Arbitrary "Name" :. Arbitrary "Builtin")
, tok "[(){}\\[\\],]" (Arbitrary "Punctuation")
, tok "\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")
, tok "\\s+" (Arbitrary "Text")
]