aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--manifest.json13
-rw-r--r--plugins/language_c7.lua80
-rw-r--r--plugins/language_fe.lua39
3 files changed, 119 insertions, 13 deletions
diff --git a/manifest.json b/manifest.json
index e80bd38..3db13fa 100644
--- a/manifest.json
+++ b/manifest.json
@@ -61,7 +61,7 @@
{
"id": "meta_languages",
"type": "meta",
- "version": "0.1.1",
+ "version": "0.1.2",
"mod_version": "3",
"description": "A metapackage containing all publically accessible language syntaxes.",
"dependencies": {
@@ -72,6 +72,7 @@
"language_batch": {},
"language_bib": {},
"language_blade": {},
+ "language_c7": {},
"language_caddyfile": {},
"language_cmake": {},
"language_containerfile": {},
@@ -600,6 +601,14 @@
"tags": ["language"]
},
{
+ "description": "Syntax for the modifications to [fe](https://github.com/rxi/fe/) used in [cel7](https://rxi.itch.io/cel7)",
+ "version": "0.1",
+ "path": "plugins/language_c7.lua",
+ "id": "language_c7",
+ "mod_version": "3",
+ "tags": ["language"]
+ },
+ {
"description": "Syntax for the Caddyfile used on the [Caddy](https://caddyserver.com/) web server",
"version": "0.1",
"path": "plugins/language_caddyfile.lua",
@@ -713,7 +722,7 @@
},
{
"description": "Syntax for the [fe](https://github.com/rxi/fe) programming language",
- "version": "0.1",
+ "version": "0.2",
"path": "plugins/language_fe.lua",
"id": "language_fe",
"mod_version": "3",
diff --git a/plugins/language_c7.lua b/plugins/language_c7.lua
new file mode 100644
index 0000000..2c3e2fc
--- /dev/null
+++ b/plugins/language_c7.lua
@@ -0,0 +1,80 @@
+-- mod-version:3
+local syntax = require "core.syntax"
+
+syntax.add {
+ name = "cel7",
+ files = "%.c7$",
+ comment = ";",
+ patterns = {
+ { pattern = ";.*", type = "comment" },
+ { pattern = { '"', '"', '\\' }, type = "string" },
+ { pattern = "0x4000", type = "literal" },
+ { pattern = "0x4040", type = "literal" },
+ { pattern = "0x52a0", type = "literal" },
+ { pattern = "0x[%da-fA-F]+", type = "number" },
+ { pattern = "-?%d+[%d%.]*", type = "number" },
+ { pattern = "-?%.?%d+", type = "number" },
+ { pattern = "'", type = "symbol" },
+ { pattern = "=", type = "symbol" },
+ { pattern = "<=?", type = "symbol" },
+ { pattern = "[%+-%*/]", type = "symbol" },
+ { pattern = "//", type = "keyword2" },
+ { pattern = "%%", type = "keyword2" },
+ { pattern = "%f[^(][^()'%s\"]+", type = "function" },
+ { pattern = "[^()'%s\"]+", type = "symbol" },
+ },
+ symbols = {
+ ["let"] = "keyword",
+ ["="] = "operator",
+ ["if"] = "keyword",
+ ["fn"] = "keyword",
+ ["mac"] = "keyword",
+ ["while"] = "keyword",
+ ["quote"] = "keyword",
+ ["'"] = "keyword",
+ ["and"] = "keyword",
+ ["or"] = "keyword",
+ ["do"] = "keyword",
+ ["cons"] = "keyword",
+ ["car"] = "keyword",
+ ["cdr"] = "keyword",
+ ["setcar"] = "keyword",
+ ["setcdr"] = "keyword",
+ ["list"] = "keyword",
+ ["not"] = "keyword",
+ ["is"] = "keyword",
+ ["atom"] = "keyword",
+ ["print"] = "keyword",
+ ["<"] = "operator",
+ ["<="] = "operator",
+ ["="] = "operator",
+ ["+"] = "operator",
+ ["-"] = "operator",
+ ["*"] = "operator",
+ ["/"] = "operator",
+ ["nil"] = "literal",
+ ["t"] = "literal",
+
+ -- reserved variables (config)
+ ["title"] = "keyword2",
+ ["width"] = "keyword2",
+ ["height"] = "keyword2",
+ ["debug"] = "keyword2",
+
+ -- callbacks
+ ["init"] = "keyword2",
+ ["step"] = "keyword2",
+ ["keydown"] = "keyword2",
+ ["keyup"] = "keyword2",
+
+ -- built-in functions
+ ["quit"] = "keyword2",
+ ["rand"] = "keyword2",
+ ["poke"] = "keyword2",
+ ["peek"] = "keyword2",
+ ["color"] = "keyword2",
+ ["put"] = "keyword2",
+ ["get"] = "keyword2",
+ ["fill"] = "keyword2",
+ }
+}
diff --git a/plugins/language_fe.lua b/plugins/language_fe.lua
index aee9b85..041512f 100644
--- a/plugins/language_fe.lua
+++ b/plugins/language_fe.lua
@@ -6,29 +6,46 @@ syntax.add {
files = "%.fe$",
comment = ";",
patterns = {
- { pattern = ";.-\n", type = "comment" },
+ { pattern = ";.*", type = "comment" },
{ pattern = { '"', '"', '\\' }, type = "string" },
{ pattern = "0x[%da-fA-F]+", type = "number" },
{ pattern = "-?%d+[%d%.]*", type = "number" },
{ pattern = "-?%.?%d+", type = "number" },
- { pattern = "'", type = "symbol" },
+ { pattern = "'", type = "symbol" },
+ { pattern = "=", type = "symbol" },
+ { pattern = "<=?", type = "symbol" },
+ { pattern = "[%+-%*/]", type = "symbol" },
{ pattern = "%f[^(][^()'%s\"]+", type = "function" },
{ pattern = "[^()'%s\"]+", type = "symbol" },
},
symbols = {
- ["if"] = "keyword2",
- ["let"] = "keyword2",
- ["do"] = "keyword2",
- ["fn"] = "keyword2",
- ["mac"] = "keyword2",
- ["'"] = "keyword2",
- ["print"] = "keyword",
+ ["let"] = "keyword",
+ ["if"] = "keyword",
+ ["fn"] = "keyword",
+ ["mac"] = "keyword",
["while"] = "keyword",
+ ["quote"] = "keyword",
+ ["'"] = "keyword",
+ ["and"] = "keyword",
+ ["or"] = "keyword",
+ ["do"] = "keyword",
+ ["cons"] = "keyword",
["car"] = "keyword",
["cdr"] = "keyword",
- ["not"] = "keyword",
- ["setcdr"] = "keyword",
["setcar"] = "keyword",
+ ["setcdr"] = "keyword",
+ ["list"] = "keyword",
+ ["not"] = "keyword",
+ ["is"] = "keyword",
+ ["atom"] = "keyword",
+ ["print"] = "keyword",
+ ["<"] = "operator",
+ ["<="] = "operator",
+ ["="] = "operator",
+ ["+"] = "operator",
+ ["-"] = "operator",
+ ["*"] = "operator",
+ ["/"] = "operator",
["nil"] = "literal",
["t"] = "literal",
}