aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/language_rivet.lua185
1 files changed, 86 insertions, 99 deletions
diff --git a/plugins/language_rivet.lua b/plugins/language_rivet.lua
index 214d76b..0416850 100644
--- a/plugins/language_rivet.lua
+++ b/plugins/language_rivet.lua
@@ -6,105 +6,92 @@
local syntax = require "core.syntax"
syntax.add {
- 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"
+ name = "Rivet",
+ files = {"%.ri$"},
+ comment = "//",
+ block_comment = {"/*", "*/"},
+ patterns = {
+ {pattern = "//.*", 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"},
+ {
+ 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"}, -- builtin function
+ {pattern = "[%a_][%w_]*", type = "symbol"},
+ {pattern = {"#%[", "%]"}, type = "literal"},
+ {pattern = "#%s?[%a_][%w_]*", type = "comment"} -- #if/#elif/#else/#endif
},
- {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",
+ symbols = {
+ ["and"] = "keyword",
+ ["as"] = "keyword",
+ ["base"] = "literal",
+ ["break"] = "keyword",
+ ["catch"] = "keyword",
+ ["class"] = "keyword",
+ ["const"] = "keyword",
+ ["continue"] = "keyword",
+ ["defer"] = "keyword",
+ ["else"] = "keyword",
+ ["enum"] = "keyword",
+ ["errdefer"] = "keyword",
+ ["extend"] = "keyword",
+ ["extern"] = "keyword",
+ ["false"] = "literal",
+ ["fn"] = "keyword",
+ ["for"] = "keyword",
+ ["if"] = "keyword",
+ ["import"] = "keyword",
+ ["in"] = "keyword",
+ ["is"] = "keyword",
+ ["let"] = "keyword",
+ ["mut"] = "keyword",
+ ["nil"] = "literal",
+ ["or"] = "keyword",
+ ["pub"] = "keyword",
+ ["prot"] = "keyword",
+ ["return"] = "keyword",
+ ["self"] = "literal",
+ ["struct"] = "keyword",
+ ["switch"] = "keyword",
+ ["test"] = "keyword",
+ ["trait"] = "keyword",
+ ["true"] = "literal",
+ ["type"] = "keyword",
+ ["unsafe"] = "keyword",
+ ["while"] = "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",
-
- -- comptime `if` stmt/expr
- ["$if"] = "keyword",
- ["$else"] = "keyword",
-
- ["if"] = "keyword",
- ["else"] = "keyword",
- ["switch"] = "keyword",
- ["while"] = "keyword",
- ["for"] = "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",
-
- -- literals
- ["super"] = "literal",
- ["self"] = "literal",
- ["true"] = "literal",
- ["false"] = "literal",
- ["none"] = "literal"
- }
+ -- types
+ ["never"] = "keyword2",
+ ["void"] = "keyword2",
+ ["bool"] = "keyword2",
+ ["i8"] = "keyword2",
+ ["i16"] = "keyword2",
+ ["i32"] = "keyword2",
+ ["i64"] = "keyword2",
+ ["isize"] = "keyword2",
+ ["u8"] = "keyword2",
+ ["u16"] = "keyword2",
+ ["u32"] = "keyword2",
+ ["u64"] = "keyword2",
+ ["usize"] = "keyword2",
+ ["f32"] = "keyword2",
+ ["f64"] = "keyword2",
+ ["rune"] = "keyword2",
+ ["string"] = "keyword2",
+ ["Base"] = "keyword2",
+ ["Self"] = "keyword2"
+ }
}