aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--manifest.json11
-rw-r--r--plugins/language_bazel.lua102
2 files changed, 113 insertions, 0 deletions
diff --git a/manifest.json b/manifest.json
index 4a8c53a..3b1b936 100644
--- a/manifest.json
+++ b/manifest.json
@@ -65,6 +65,7 @@
"language_assembly_x86": {},
"language_autohotkey_v1": {},
"language_batch": {},
+ "language_bazel": {},
"language_bib": {},
"language_blade": {},
"language_blueprint": {},
@@ -670,6 +671,16 @@
"version": "0.1"
},
{
+ "description": "Syntax for [Bazel](https://bazel.build/) build tool files.",
+ "id": "language_bazel",
+ "mod_version": "3",
+ "path": "plugins/language_bazel.lua",
+ "tags": [
+ "language"
+ ],
+ "version": "0.1"
+ },
+ {
"description": "Syntax for [BibTex](https://en.wikipedia.org/wiki/BibTeX) files",
"id": "language_bib",
"mod_version": "3",
diff --git a/plugins/language_bazel.lua b/plugins/language_bazel.lua
new file mode 100644
index 0000000..8b0348e
--- /dev/null
+++ b/plugins/language_bazel.lua
@@ -0,0 +1,102 @@
+--- Author: Rohan Vashisht: https://github.com/rohanvashisht1234/
+-- mod-version:3
+------------ IMPORT LIB ------------
+local syntax_highlight = require("core.syntax")
+------------------------------------
+
+------------- DATABASE -------------
+
+---- SYMBOLS ----
+local SYMBOLS = {}
+
+local KEYWORDS = {
+ "break",
+ "continue",
+ "elif",
+ "else",
+ "for",
+ "if",
+ "pass",
+ "return",
+ "True",
+ "False"
+}
+
+local KEYWORDS2 = {
+ "as",
+ "assert",
+ "class",
+ "del",
+ "except",
+ "finally",
+ "from",
+ "global",
+ "import",
+ "in",
+ "is",
+ "lambda",
+ "nonlocal",
+ "raise",
+ "try",
+ "while",
+ "with",
+ "yield"
+}
+
+local LITERALS = {
+ "all",
+ "any",
+ "bool",
+ "dict",
+ "dir",
+ "enumerate",
+ "getattr",
+ "hasattr",
+ "hash",
+ "int",
+ "len",
+ "list",
+ "load",
+ "max",
+ "min",
+ "repr",
+ "reversed",
+ "sorted",
+ "str",
+ "tuple",
+ "type",
+ "zip"
+}
+-----------------
+
+---- PATTERNS ----
+local PATTERNS = {
+ { pattern = { '"', '"', '\\' }, type = "string" }, -- tested ok
+ { pattern = "#.*", type = "comment" }, -- tested ok
+ { pattern = "[!%-/*?:=><]", type = "operator" }, -- tested ok
+ { pattern = "-?%d+[%d%.eE_]*", type = "number" }, -- tested ok
+ { pattern = '[%a_][%w_]*%f[(]', type = 'function' }, -- tested ok
+ { pattern = "-?%d+[%d%.eE_]*", type = "number" }, -- tested ok
+ { pattern = "[%a_][%w_]*", type = "normal" } -- tested ok
+}
+------------------
+------------------------------------
+
+--------------- MAIN ---------------
+for _, keyword in ipairs(KEYWORDS) do
+ SYMBOLS[keyword] = "keyword"
+end
+for _, keyword2 in ipairs(KEYWORDS2) do
+ SYMBOLS[keyword2] = "keyword2"
+end
+for _, literal in ipairs(LITERALS) do
+ SYMBOLS[literal] = "literal"
+end
+syntax_highlight.add {
+ name = "Bazel",
+ files = {"%.bazel$","%.bzl$"},
+ comment = "#",
+ patterns = PATTERNS,
+ symbols = SYMBOLS,
+}
+------------------------------------