You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.4 KiB
45 lines
1.4 KiB
local syntax = require "core.syntax"
|
|
|
|
syntax.add {
|
|
files = { "%.hs$" },
|
|
comment = "%-%-",
|
|
patterns = {
|
|
{ pattern = {"%-%-", "\n"}, type = "comment" },
|
|
{ pattern = { "{%-", "%-}" }, type = "comment" },
|
|
{ pattern = { '"', '"', '\\' }, type = "string" },
|
|
{ pattern = { "'", "'", '\\' }, type = "string" },
|
|
{ pattern = "-?0x%x+", type = "number" },
|
|
{ pattern = "-?%d+[%d%.eE]*f?", type = "number" },
|
|
{ pattern = "-?%.?%d+f?", type = "number" },
|
|
{ pattern = "[!%#%$%%&*+./%<=>%?@\\%^|%-~:]", type = "operator" },
|
|
{ pattern = "[%a_'][%w_']*", type = "symbol" },
|
|
},
|
|
symbols = {
|
|
["as"] = "keyword",
|
|
["case"] = "keyword",
|
|
["of"] = "keyword",
|
|
["class"] = "keyword",
|
|
["data"] = "keyword",
|
|
["default"] = "keyword",
|
|
["deriving"] = "keyword",
|
|
["do"] = "keyword",
|
|
["forall"] = "keyword",
|
|
["foreign"] = "keyword",
|
|
["hiding"] = "keyword",
|
|
["if"] = "keyword",
|
|
["then"] = "keyword",
|
|
["else"] = "keyword",
|
|
["import"] = "keyword",
|
|
["infix"] = "keyword",
|
|
["infixl"] = "keyword",
|
|
["infixr"] = "keyword",
|
|
["let"] = "keyword",
|
|
["in"] = "keyword",
|
|
["mdo"] = "keyword",
|
|
["module"] = "keyword",
|
|
["newtype"] = "keyword",
|
|
["qualified"] = "keyword",
|
|
["type"] = "keyword",
|
|
["where"] = "keyword",
|
|
},
|
|
}
|
|
|