101 lines
2.6 KiB
Lua
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",
|
|
}
|
|
}
|