aboutsummaryrefslogtreecommitdiff
path: root/plugins/language_miniscript.lua
diff options
context:
space:
mode:
authorThaCuber <70547062+ThaCuber@users.noreply.github.com>2022-09-10 20:13:02 -0400
committerGitHub <noreply@github.com>2022-09-10 20:13:02 -0400
commitfe3eecc3b8967b4b61b9cac9c028e07665a75cb0 (patch)
treeeac6a5a304a2a79f5e0a86f75306ae4a480d8701 /plugins/language_miniscript.lua
parent30fb5f31f0daa7d2ac98989aad8529511ed69ff5 (diff)
downloadlite-xl-plugins-fe3eecc3b8967b4b61b9cac9c028e07665a75cb0.tar.gz
lite-xl-plugins-fe3eecc3b8967b4b61b9cac9c028e07665a75cb0.zip
Syntax highlighter for the MiniScript programming language (#124)
* Syntax highlighter for the Miniscript language * Update README.md
Diffstat (limited to 'plugins/language_miniscript.lua')
-rw-r--r--plugins/language_miniscript.lua102
1 files changed, 102 insertions, 0 deletions
diff --git a/plugins/language_miniscript.lua b/plugins/language_miniscript.lua
new file mode 100644
index 0000000..afe0a2b
--- /dev/null
+++ b/plugins/language_miniscript.lua
@@ -0,0 +1,102 @@
+-- mod-version:3
+local syntax = require 'core.syntax'
+
+syntax.add {
+ name = "MiniScript",
+ files = { "%.ms$" },
+ comment = "//",
+ patterns = {
+ { pattern = "//.*", type = "comment" },
+ { pattern = { '"', '"' }, type = "string" },
+ { pattern = "[<>!=]=", type = "operator" },
+ { pattern = "[%+%-%*%/%^@<>:]", type = "operator" },
+ { pattern = "%d%.%d*[eE][-+]?%d+", type = "number" },
+ { pattern = "%d%.%d*", type = "number" },
+ { pattern = "%.?%d*[eE][-+]?%d+", type = "number" },
+ { pattern = "%.?%d+", type = "number" },
+ { pattern = "[%a_][%w_]*", type = "symbol" },
+ },
+ symbols = {
+ ["if"] = "keyword",
+ ["not"] = "keyword",
+ ["and"] = "keyword",
+ ["or"] = "keyword",
+ ["else"] = "keyword",
+ ["then"] = "keyword",
+ ["for"] = "keyword",
+ ["in"] = "keyword",
+ ["while"] = "keyword",
+ ["break"] = "keyword",
+ ["continue"] = "keyword",
+ ["function"] = "keyword",
+ ["end"] = "keyword",
+ ["return"] = "keyword",
+ ["new"] = "keyword",
+ ["isa"] = "keyword",
+ ["self"] = "keyword2",
+
+ ["true"] = "literal",
+ ["false"] = "literal",
+ ["null"] = "literal",
+ ["globals"] = "literal",
+ ["locals"] = "literal",
+ ["outer"] = "literal",
+
+ -- Built-in types's classes
+ ["number"] = "literal",
+ ["string"] = "literal",
+ ["list"] = "literal",
+ ["map"] = "literal",
+ ["funcRef"] = "literal",
+
+ -- Intrinsic functions
+ ["abs"] = "function",
+ ["acos"] = "function",
+ ["asin"] = "function",
+ ["atan"] = "function",
+ ["bitAnd"] = "function",
+ ["bitOr"] = "function",
+ ["bitXor"] = "function",
+ ["ceil"] = "function",
+ ["char"] = "function",
+ ["code"] = "function",
+ ["cos"] = "function",
+ ["floor"] = "function",
+ ["hash"] = "function",
+ ["hasIndex"] = "function",
+ ["indexes"] = "function",
+ ["indexOf"] = "function",
+ ["insert"] = "function",
+ ["join"] = "function",
+ ["len"] = "function",
+ ["log"] = "function",
+ ["lower"] = "function",
+ ["pi"] = "function",
+ ["pop"] = "function",
+ ["print"] = "function",
+ ["pull"] = "function",
+ ["push"] = "function",
+ ["range"] = "function",
+ ["remove"] = "function",
+ ["replace"] = "function",
+ ["rnd"] = "function",
+ ["round"] = "function",
+ ["shuffle"] = "function",
+ ["sign"] = "function",
+ ["sin"] = "function",
+ ["slice"] = "function",
+ ["sort"] = "function",
+ ["split"] = "function",
+ ["sqrt"] = "function",
+ ["str"] = "function",
+ ["sum"] = "function",
+ ["tan"] = "function",
+ ["time"] = "function",
+ ["upper"] = "function",
+ ["val"] = "function",
+ ["values"] = "function",
+ ["version"] = "function",
+ ["wait"] = "function",
+ ["yield"] = "function",
+ },
+}