diff options
author | Phil Hagelberg <phil@hagelb.org> | 2020-05-21 18:39:44 -0700 |
---|---|---|
committer | Phil Hagelberg <phil@hagelb.org> | 2020-05-21 18:39:44 -0700 |
commit | 0ceedf5322fefeb8fda1068438e2de421b711b17 (patch) | |
tree | 775b8919be76d329dc36e49369c036c019584a3b /plugins/language_fennel.lua | |
parent | 45b2f56937691d055275687a504b2699dbf5b44a (diff) | |
download | lite-xl-plugins-0ceedf5322fefeb8fda1068438e2de421b711b17.tar.gz lite-xl-plugins-0ceedf5322fefeb8fda1068438e2de421b711b17.zip |
Add language_fennel plugin for Fennel code.
Diffstat (limited to 'plugins/language_fennel.lua')
-rw-r--r-- | plugins/language_fennel.lua | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/plugins/language_fennel.lua b/plugins/language_fennel.lua new file mode 100644 index 0000000..7320e91 --- /dev/null +++ b/plugins/language_fennel.lua @@ -0,0 +1,100 @@ +-- 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", + } +} |