aboutsummaryrefslogtreecommitdiff
path: root/plugins/language_elm.lua
blob: 2d33813a055841d6bc952010795eeaa21d56537a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
-- mod-version:3
local syntax = require "core.syntax"

syntax.add {
  name = "Elm",
  files = { "%.elm$" },
  comment = "%-%-",
  patterns = {
    { pattern = {"%-%-", "\n"},          type = "comment"  },
    { pattern = { "{%-", "%-}" },        type = "comment"  },
    { pattern = { '"', '"', '\\' },      type = "string"   },
    { 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 = "[=:|&<>%+%-%*\\/%^%%]", type = "operator" },
    { pattern = "[%a_'][%w_']*",         type = "symbol"   },
  },
  symbols = {
    ["as"] = "keyword",
    ["case"] = "keyword",
    ["of"] = "keyword",
    ["if"] = "keyword",
    ["then"] = "keyword",
    ["else"] = "keyword",
    ["import"] = "keyword",
    ["module"] = "keyword",
    ["exposing"] = "keyword",
    ["let"] = "keyword",
    ["in"] = "keyword",
    ["type"] = "keyword",
    ["alias"] = "keyword",
    ["port"] = "keyword",
    ["and"] = "keyword",
    ["or"] = "keyword",
    ["xor"] = "keyword",
    ["not"] = "keyword",
    ["number"] = "keyword2",
    ["Bool"] = "keyword2",
    ["Char"] = "keyword2",
    ["Float"] = "keyword2",
    ["Int"] = "keyword2",
    ["String"] = "keyword2",
    ["True"] = "literal",
    ["False"] = "literal",
  },
}