Skip to content

Commit

Permalink
added support for Bazel syntax (#420)
Browse files Browse the repository at this point in the history
* Create language_bazel.lua

* Update language_bazel.lua

* Update manifest.json

* Update manifest.json

* Update language_bazel.lua

* Update manifest.json

* Update language_bazel.lua

* Update language_bazel.lua

* Bump `meta_languages` version

---------

Co-authored-by: Guldoman <[email protected]>
  • Loading branch information
RohanVashisht1234 and Guldoman authored Apr 20, 2024
1 parent ad65bd2 commit ded40e1
Show file tree
Hide file tree
Showing 2 changed files with 113 additions and 0 deletions.
11 changes: 11 additions & 0 deletions manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@
"language_assembly_x86": {},
"language_autohotkey_v1": {},
"language_batch": {},
"language_bazel": {},
"language_bib": {},
"language_blade": {},
"language_blueprint": {},
Expand Down Expand Up @@ -669,6 +670,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",
Expand Down
102 changes: 102 additions & 0 deletions plugins/language_bazel.lua
Original file line number Diff line number Diff line change
@@ -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,
}
------------------------------------

0 comments on commit ded40e1

Please sign in to comment.