diff options
Diffstat (limited to 'plugins/language_rivet.lua')
-rw-r--r-- | plugins/language_rivet.lua | 194 |
1 files changed, 94 insertions, 100 deletions
diff --git a/plugins/language_rivet.lua b/plugins/language_rivet.lua index eaed9e4..61b11bc 100644 --- a/plugins/language_rivet.lua +++ b/plugins/language_rivet.lua @@ -6,111 +6,105 @@ local syntax = require "core.syntax" syntax.add { - name = "Rivet", - files = {"%.ri$"}, - comment = "//", - block_comment = {"/*", "*/"}, - patterns = { - {pattern = "//.-\n", type = "comment"}, - {pattern = {"/%*", "%*/"}, type = "comment"}, - {pattern = {'[cbr]?"', '"', "\\"}, type = "string"}, - {pattern = {"[b]?'", "'", '\\' }, type = "string"}, - {pattern = "0b[01_]+", type = "number"}, - {pattern = "0o[0-7_]+", type = "number"}, - {pattern = "0x[%x_]+", type = "number"}, - {pattern = "%d[%d_]*%.[%d_]*[eE][-+]?%d+", type = "number"}, - {pattern = "%d[%d_]*%.[%d_]*", type = "number"}, - {pattern = "%d[%d_]*", type = "number"}, - {pattern = "-?%.?%d+", type = "number"}, - {pattern = "[%+%-=/%*%^%%<>!~|&%.%?]", type = "operator"}, - {pattern = "[%a_][%w_]*::", type = "keyword2"}, - { -- Uppercase constants of at least 2 chars in len - pattern = "_?%u[%u_][%u%d_]*%f[%s%+%*%-%.%)%]}%?%^%%=/<>~|&;:,!]", - type = "number" - }, - {pattern = "[A-Z][%w_]*", type = "keyword2"}, -- types - {pattern = "[%a_][%w_]*%f[(]", type = "function"}, - {pattern = "[%a_][%w_]*!%f[(]", type = "keyword2"}, - {pattern = "[%a_][%w_]*", type = "symbol"}, - {pattern = {"#%[", "%]"}, type = "keyword"}, - {pattern = "%$%s?[%a_][%w_]*", type = "keyword2"}, - {pattern = "%@%s?[%a_][%w_]*", type = "keyword2"}, + name = "Rivet", + files = {"%.ri$"}, + comment = "//", + block_comment = {"/*", "*/"}, + patterns = { + {pattern = "//.-\n", type = "comment"}, + {pattern = {"/%*", "%*/"}, type = "comment"}, + {pattern = {'[bcr]?"', '"', "\\"}, type = "string"}, + {pattern = {"[b]?'", "'", '\\' }, type = "string"}, + {pattern = "0b[01_]+", type = "number"}, + {pattern = "0o[0-7_]+", type = "number"}, + {pattern = "0x[%x_]+", type = "number"}, + {pattern = "%d[%d_]*%.[%d_]*[eE][-+]?%d+", type = "number"}, + {pattern = "%d[%d_]*%.[%d_]*", type = "number"}, + {pattern = "%d[%d_]*", type = "number"}, + {pattern = "-?%.?%d+", type = "number"}, + {pattern = "[%+%-=/%*%^%%<>!~|&%.%?]", type = "operator"}, + -- Uppercase constants of at least 2 chars in length + { + pattern = "_?%u[%u_][%u%d_]*%f[%s%+%*%-%.%)%]}%?%^%%=/<>~|&;:,!]", + type = "number" }, - symbols = { - ["extern"] = "keyword", - ["using"] = "keyword", + {pattern = "[A-Z][%w_]*", type = "keyword2"}, -- types + {pattern = "[%a_][%w_]*%f[(]", type = "function"}, + {pattern = "[%a_][%w_]*!%f[(]", type = "keyword2"}, + {pattern = "[%a_][%w_]*", type = "symbol"}, + {pattern = {"#%[", "%]"}, type = "keyword"}, + {pattern = "%$%s?[%a_][%w_]*", type = "keyword2"}, + }, + symbols = { + ["pub"] = "keyword", - ["pub"] = "keyword", - ["as"] = "keyword", + ["extern"] = "keyword", + ["using"] = "keyword", + ["pkg"] = "keyword", + ["mod"] = "keyword", + ["const"] = "keyword", + ["trait"] = "keyword", + ["union"] = "keyword", + ["class"] = "keyword", + ["struct"] = "keyword", + ["enum"] = "keyword", + ["errtype"] = "keyword", + ["type"] = "keyword", + ["extend"] = "keyword", + ["test"] = "keyword", + ["fn"] = "keyword", - ["pkg"] = "keyword", - ["mod"] = "keyword", - ["const"] = "keyword", - ["static"] = "keyword", - ["trait"] = "keyword", - ["struct"] = "keyword", - ["union"] = "keyword", - ["type"] = "keyword", - ["errtype"] = "keyword", - ["enum"] = "keyword", - ["fn"] = "keyword", - ["test"] = "keyword", - ["extend"] = "keyword", + -- comptime `if` stmt/expr + ["$if"] = "keyword", + ["$else"] = "keyword", - -- comptime `if` and `match` expr - ["$if"] = "keyword", - ["$elif"] = "keyword", - ["$else"] = "keyword", - ["$match"] = "keyword", + ["if"] = "keyword", + ["else"] = "keyword", + ["switch"] = "keyword", + ["while"] = "keyword", + ["for"] = "keyword", - ["if"] = "keyword", - ["elif"] = "keyword", - ["else"] = "keyword", - ["match"] = "keyword", - ["while"] = "keyword", - ["for"] = "keyword", + ["break"] = "keyword", + ["continue"] = "keyword", + ["return"] = "keyword", + ["raise"] = "keyword", - ["break"] = "keyword", - ["continue"] = "keyword", - ["return"] = "keyword", - ["raise"] = "keyword", + ["unsafe"] = "keyword", + ["defer"] = "keyword", + ["var"] = "keyword", + ["mut"] = "keyword", + ["and"] = "keyword", + ["or"] = "keyword", + ["orelse"] = "keyword", + ["catch"] = "keyword", + ["is"] = "keyword", + ["in"] = "keyword", + ["as"] = "keyword", + + -- types + ["no_return"] = "keyword2", + ["bool"] = "keyword2", + ["i8"] = "keyword2", + ["i16"] = "keyword2", + ["i32"] = "keyword2", + ["i64"] = "keyword2", + ["u8"] = "keyword2", + ["u16"] = "keyword2", + ["u32"] = "keyword2", + ["u64"] = "keyword2", + ["isize"] = "keyword2", + ["usize"] = "keyword2", + ["f32"] = "keyword2", + ["f64"] = "keyword2", + ["rune"] = "keyword2", + ["string"] = "keyword2", + ["Self"] = "keyword2", - ["let"] = "keyword", - ["mut"] = "keyword", - ["unsafe"] = "keyword", - ["goto"] = "keyword", - ["orelse"] = "keyword", - ["catch"] = "keyword", - ["or"] = "keyword", - ["and"] = "keyword", - ["is"] = "keyword", - ["in"] = "keyword", - - -- types - ["void"] = "keyword2", - ["no_return"] = "keyword2", - ["bool"] = "keyword2", - ["i8"] = "keyword2", - ["i16"] = "keyword2", - ["i32"] = "keyword2", - ["i64"] = "keyword2", - ["u8"] = "keyword2", - ["u16"] = "keyword2", - ["u32"] = "keyword2", - ["u64"] = "keyword2", - ["f32"] = "keyword2", - ["f64"] = "keyword2", - ["rune"] = "keyword2", - ["isize"] = "keyword2", - ["usize"] = "keyword2", - ["str"] = "keyword2", - ["Self"] = "keyword2", - - -- literals - ["super"] = "literal", - ["self"] = "literal", - ["true"] = "literal", - ["false"] = "literal", - ["none"] = "literal" - } + -- literals + ["super"] = "literal", + ["self"] = "literal", + ["true"] = "literal", + ["false"] = "literal", + ["none"] = "literal" + } } |