aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/language_rivet.lua194
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"
+ }
}