diff options
| author | TravonteD <tman1300@aol.com> | 2020-08-16 20:11:56 -0400 |
|---|---|---|
| committer | TravonteD <tman1300@aol.com> | 2020-08-16 20:40:33 -0400 |
| commit | 72905524c2ef78536dbe148f311e634815ead40b (patch) | |
| tree | 4f5bbe65d3aa4af51afe9e50e39fe061c22406f8 | |
| parent | Python: update highlights (diff) | |
| download | nvim-treesitter-72905524c2ef78536dbe148f311e634815ead40b.tar nvim-treesitter-72905524c2ef78536dbe148f311e634815ead40b.tar.gz nvim-treesitter-72905524c2ef78536dbe148f311e634815ead40b.tar.bz2 nvim-treesitter-72905524c2ef78536dbe148f311e634815ead40b.tar.lz nvim-treesitter-72905524c2ef78536dbe148f311e634815ead40b.tar.xz nvim-treesitter-72905524c2ef78536dbe148f311e634815ead40b.tar.zst nvim-treesitter-72905524c2ef78536dbe148f311e634815ead40b.zip | |
Add fennel support
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | lua/nvim-treesitter/parsers.lua | 7 | ||||
| -rw-r--r-- | queries/fennel/highlights.scm | 123 | ||||
| -rw-r--r-- | queries/fennel/locals.scm | 45 |
4 files changed, 176 insertions, 0 deletions
@@ -252,6 +252,7 @@ List of currently supported languages: - [x] css (maintained by @TravonteD) - [x] dart (maintained by @Akin909) - [ ] elm +- [x] fennel (maintained by @TravonteD) - [x] go (maintained by @theHamsta, @WinWisely268) - [ ] haskell - [x] html (maintained by @TravonteD) diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index c1b48a00d..38c6097ca 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -221,6 +221,13 @@ list.rst = { } } +list.fennel = { + install_info = { + url = "https://github.com/travonted/tree-sitter-fennel", + files = { "src/parser.c" }, + } +} + -- Parsers for injections list.regex = { install_info = { diff --git a/queries/fennel/highlights.scm b/queries/fennel/highlights.scm new file mode 100644 index 000000000..f5f88962b --- /dev/null +++ b/queries/fennel/highlights.scm @@ -0,0 +1,123 @@ +(boolean) @boolean +(nil) @constant.builtin +(string) @string +(number) @number +(field) @constant +(comment) @comment +(identifier) @variable + +[ + "fn" + "lambda" + "hashfn" + "set" + "tset" + "λ" + "global" + "var" + "local" + "let" + "do" + "not" + "not=" + "_ENV" + "_G" + "_VERSION" + "arg" + "assert" + "collectgarbage" + "coroutine" + "debug" + "dofile" + "doto" + "error" + "eval-compiler" + "gensym" + "getmetatable" + "in-scope?" + "ipairs" + "list" + "list?" + "load" + "loadfile" + "loadstring" + "match" + "macro" + "macrodebug" + "macroexpand" + "macros" + "multi-sym?" + "next" + "pairs" + "package" + "pcall" + "print" + "rawequal" + "rawget" + "rawlen" + "rawset" + "select" + "sequence?" + "setmetatable" + "string" + "sym" + "sym?" + "table" + "table?" + "tonumber" + "tostring" + "type" + "unpack" + "varg?" + "xpcall" +] @keyword + +[ + "require" + "require-macros" + "import-macros" + "include" + ] @include + +[ + "each" + "for" + "while" +] @repeat + +[ + "if" + "when" +] @conditional + +[ + "(" + ")" + "{" + "}" + "[" + "]" +] @punctuation.bracket + +; hash function +"#" @function + +(function_definition + name: (identifier) @function) + +(lambda_definition + name: (identifier) @function) + +(function_call + name: (identifier) @function) + +(field_expression + (identifier) + "." @punctuation.delimiter + (identifier) @function) + +(field_expression + (identifier) + (field) @function) + +(parameters (identifier) @parameter) diff --git a/queries/fennel/locals.scm b/queries/fennel/locals.scm new file mode 100644 index 000000000..fb260596b --- /dev/null +++ b/queries/fennel/locals.scm @@ -0,0 +1,45 @@ +; Scope +[ + (program) + (function_definition) + (lambda_definition) + (let_definition) +] @scope + +; Functions +(function_definition + name: (identifier) @definition.function) +(lambda_definition + name: (identifier) @definition.function) + +; Variable Definitions +(local_definition + (assignment + (identifier) @definition.var)) +(var_definition + (assignment + (identifier) @definition.var)) +(global_definition + (assignment + (identifier) @definition.var)) +(assignment + (identifier) @definition.var) +(multi_value_assignment + (value_list + (identifier) @definition.var)) +(parameters + ((identifier) @definition.var)) +; iterators/loops +((each + (each_clause + (identifier) @definition.var)) @scope) +((for + (for_clause + (identifier) @definition.var)) @scope) + +; references +(set + (assignment (identifier) @reference)) +(function_call + name: (identifier) @reference) +(identifier) @reference |
