bomberpac/vendor/lite-plugins/plugins/language_fennel.lua
2021-02-07 16:56:19 -05:00

101 lines
2.6 KiB
Lua

-- Support for the Fennel programming language: https://fennel-lang.org
-- Covers all the keywords up to Fennel version 0.4.0
-- Currently only covers highlighting, not indentation, delimiter
-- matching, or evaluation.
local syntax = require "core.syntax"
syntax.add {
files = "%.fnl$",
comment = ";",
patterns = {
{ pattern = ";.-\n", type = "comment" },
{ pattern = { '"', '"', '\\' }, type = "string" },
{ pattern = "0x[%da-fA-F]+", type = "number" },
{ pattern = "-?%d+[%d%.]*", type = "number" },
{ pattern = "-?%.?%d+", type = "number" },
{ pattern = "%f[^(][^()'%s\"]+", type = "function" },
{ pattern = "[^()'%s\"]+", type = "symbol" },
},
symbols = {
["eval-compiler"] = "keyword2",
["doc"] = "keyword2",
["lua"] = "keyword2",
["hashfn"] = "keyword2",
["macro"] = "keyword2",
["macros"] = "keyword2",
["import-macros"] = "keyword2",
["do"] = "keyword2",
["values"] = "keyword2",
["if"] = "keyword2",
["when"] = "keyword2",
["each"] = "keyword2",
["for"] = "keyword2",
["fn"] = "keyword2",
["lambda"] = "keyword2",
["λ"] = "keyword2",
["partial"] = "keyword2",
["while"] = "keyword2",
["set"] = "keyword2",
["global"] = "keyword2",
["var"] = "keyword2",
["local"] = "keyword2",
["let"] = "keyword2",
["tset"] = "keyword2",
["set-forcibly!"] = "keyword2",
["doto"] = "keyword2",
["match"] = "keyword2",
["or"] = "keyword2",
["and"] = "keyword2",
["not"] = "keyword2",
["not="] = "keyword2",
["pick-args"] = "keyword2",
["pick-values"] = "keyword2",
["macrodebug"] = "keyword2",
["."] = "keyword",
["+"] = "keyword",
[".."] = "keyword",
["^"] = "keyword",
["-"] = "keyword",
["*"] = "keyword",
["%"] = "keyword",
["/"] = "keyword",
[">"] = "keyword",
["<"] = "keyword",
[">="] = "keyword",
["<="] = "keyword",
["="] = "keyword",
["#"] = "keyword",
["..."] = "keyword",
[":"] = "keyword",
["->"] = "keyword",
["->>"] = "keyword",
["-?>"] = "keyword",
["-?>>"] = "keyword",
["$"] = "keyword",
["$1"] = "keyword",
["$2"] = "keyword",
["$3"] = "keyword",
["$4"] = "keyword",
["$5"] = "keyword",
["$6"] = "keyword",
["$7"] = "keyword",
["$8"] = "keyword",
["$9"] = "keyword",
["lshift"] = "keyword",
["rshift"] = "keyword",
["bor"] = "keyword",
["band"] = "keyword",
["bnot"] = "keyword",
["bxor"] = "keyword",
["nil"] = "literal",
["true"] = "literal",
["false"] = "literal",
}
}