aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/language_json.lua27
1 files changed, 27 insertions, 0 deletions
diff --git a/plugins/language_json.lua b/plugins/language_json.lua
new file mode 100644
index 0000000..eae97d4
--- /dev/null
+++ b/plugins/language_json.lua
@@ -0,0 +1,27 @@
+-- mod-version:3 priority:110
+
+local syntax = require "core.syntax"
+
+syntax.add {
+ name = "JSON",
+ files = { "%.json$", "%.cjson$", "%.jsonc$" },
+ comment = "//",
+ block_comment = {"/*", "*/"},
+ patterns = {
+
+ -- cjson support
+ { pattern = "//.*", type = "comment" },
+ { pattern = { "/%*", "%*/" }, type = "comment" },
+
+ { regex = [["(?:[^"\\]|\\.)*"()\s*:]], type = { "keyword", "normal" } }, -- key
+ { regex = [["(?:[^"\\]|\\.)*"]], type = "string" }, -- value
+ { pattern = "0x[%da-fA-F]+", type = "number" },
+ { pattern = "-?%d+[%d%.eE]*", type = "number" },
+ { pattern = "-?%.?%d+", type = "number" },
+ { pattern = "null", type = "literal" },
+ { pattern = "true", type = "literal" },
+ { pattern = "false", type = "literal" }
+ },
+ symbols = { }
+}
+