diff options
Diffstat (limited to 'plugins/language_bazel.lua')
-rw-r--r-- | plugins/language_bazel.lua | 102 |
1 files changed, 102 insertions, 0 deletions
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, +} +------------------------------------ |