diff --git a/plugins/language_lobster.lua b/plugins/language_lobster.lua index 24f42519..63e745ba 100644 --- a/plugins/language_lobster.lua +++ b/plugins/language_lobster.lua @@ -6,25 +6,26 @@ syntax.add { files = "%.lobster$", comment = "//", patterns = { - { pattern = "//.-\n", type = "comment" }, - { pattern = { "/%*", "%*/" }, type = "comment" }, + { pattern = "//.-\n", type = "comment" }, + { pattern = { "/%*", "%*/" }, type = "comment" }, - { pattern = "struct%s()[%a_][%w_]*", type = {"keyword", "keyword2"} }, - { pattern = "class%s()[%a_][%w_]*", type = {"keyword", "keyword2"} }, - { pattern = "import%s+from", type = "keyword" }, + { pattern = "struct%s()[%a_][%w_]*", type = { "keyword", "keyword2" } }, + { pattern = "class%s()[%a_][%w_]*", type = { "keyword", "keyword2" } }, + { pattern = "[%w_]+%s*(){", type = { "keyword2", "normal" } }, - { 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 = "[%a_][%w_]*%f[(]", type = "function" }, - { pattern = "[%a_][%w_]*", type = "symbol" }, + { 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 = "[%a_][%w_]*%f[(]", type = "function" }, + { pattern = "[%a_][%w_]*", type = "symbol" }, }, symbols = { ["import"] = "keyword", + ["from"] = "keyword", ["def"] = "keyword", ["fn"] = "keyword", ["return"] = "keyword", @@ -34,6 +35,7 @@ syntax.add { -- not really keywords but provides control-flow constructs ["if"] = "keyword", + ["guard"] = "keyword", ["for"] = "keyword", ["while"] = "keyword", ["else"] = "keyword", @@ -56,10 +58,20 @@ syntax.add { ["case"] = "keyword", ["default"] = "keyword", ["namespace"] = "keyword", - - ["not"] = "operator", - ["and"] = "operator", - ["or"] = "operator", + ["constructor"] = "keyword", + ["operator"] = "keyword", + ["super"] = "keyword", + ["abstract"] = "keyword", + ["attribute"] = "keyword", + ["member"] = "keyword", + ["member_frame"] = "keyword", + ["static"] = "keyword", + ["static_frame"] = "keyword", + ["not"] = "keyword", + ["and"] = "keyword", + ["or"] = "keyword", + ["struct"] = "keyword", + ["class"] = "keyword", ["nil"] = "literal", },