diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/language_blueprint.lua | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/plugins/language_blueprint.lua b/plugins/language_blueprint.lua new file mode 100644 index 0000000..98d6b06 --- /dev/null +++ b/plugins/language_blueprint.lua @@ -0,0 +1,90 @@ +-- mod-version:3 +local syntax = require "core.syntax" + +syntax.add { + name = "Blueprint", + files = { "%.blp$", }, + comment = "//", + block_comment = {"/*", "*/"}, + patterns = { + + -- Comments + { pattern = "//.*", type = "comment" }, + { pattern = { "/%*", "%*/" }, type = "comment" }, + + -- Strings + { pattern = { "'", "'", "\\"}, type = "string" }, + { pattern = { '"', '"', "\\" }, type = "string" }, + + -- Numbers + { pattern = "%.?%d+", type = "number" }, + + -- Child type + { pattern = "%[.*%]", type = "literal" }, + + -- Operators + { pattern = "%$", type = "operator" }, + { pattern = "=>%s*%$().*()%(%)", type = { "operator", "function", "normal" } }, + + -- Properties + { pattern = "[%w-_]+()%s*:", type = { "keyword", "normal" } }, + + -- Classes + { pattern = "[%w_-%.]+%s*(){", type = { "keyword2", "normal"} }, + { pattern = "[%w_-%.]+%s*()[%w_-]+%s*{", type = { "keyword2", "normal"} }, + + -- Symbols + { pattern = "[%w-_]+", type = "symbol" }, + + }, + symbols = { + ["true"] = "literal", + ["false"] = "literal", + ["null"] = "literal", + + -- Import statements + ["using"] = "keyword", + + -- Keywords + ["after"] = "keyword", + ["bidirectional"] = "keyword", + ["bind-property"] = "keyword", + ["bind"] = "keyword", + ["default"] = "keyword", + ["destructive"] = "keyword", + ["disabled"] = "keyword", + ["inverted"] = "keyword", + ["no-sync-create"] = "keyword", + ["suggested"] = "keyword", + ["swapped"] = "keyword", + ["sync-create"] = "keyword", + ["template"] = "keyword", + + -- Menus + ["menu"] = "keyword", + ["submenu"] = "keyword", + ["section"] = "keyword", + + -- Nested blocks + ["responses"] = "keyword2", + ["items"] = "keyword2", + ["mime-types"] = "keyword2", + ["patterns"] = "keyword2", + ["suffixes"] = "keyword2", + ["marks"] = "keyword2", + ["widgets"] = "keyword2", + ["strings"] = "keyword2", + ["styles"] = "keyword2", + ["accessibility"] = "keyword2", + ["setters"] = "keyword2", + ["layout"] = "keyword2", + ["item"] = "keyword2", + ["condition"] = "keyword2", + ["mark"] = "keyword2", + + -- Translated strings + ["_"] = "operator", + ["C_"] = "operator", + } +} + |