diff options
| -rw-r--r-- | README.md | 1 | ||||
| -rw-r--r-- | lockfile.json | 3 | ||||
| -rw-r--r-- | lua/nvim-treesitter/parsers.lua | 9 | ||||
| -rw-r--r-- | queries/facility/folds.scm | 6 | ||||
| -rw-r--r-- | queries/facility/highlights.scm | 81 | ||||
| -rw-r--r-- | queries/facility/indents.scm | 8 | ||||
| -rw-r--r-- | queries/facility/injections.scm | 5 |
7 files changed, 113 insertions, 0 deletions
@@ -223,6 +223,7 @@ We are looking for maintainers to add more parsers and to write query files for - [x] [elvish](https://github.com/elves/tree-sitter-elvish) (maintained by @elves) - [ ] [embedded_template](https://github.com/tree-sitter/tree-sitter-embedded-template) - [x] [erlang](https://github.com/WhatsApp/tree-sitter-erlang) (maintained by @filmor) +- [x] [facility](https://github.com/FacilityApi/tree-sitter-facility) (maintained by @bryankenote) - [x] [fennel](https://github.com/travonted/tree-sitter-fennel) (maintained by @TravonteD) - [x] [firrtl](https://github.com/amaanq/tree-sitter-firrtl) (maintained by @amaanq) - [x] [fish](https://github.com/ram02z/tree-sitter-fish) (maintained by @ram02z) diff --git a/lockfile.json b/lockfile.json index 5963a7c46..2a681c306 100644 --- a/lockfile.json +++ b/lockfile.json @@ -149,6 +149,9 @@ "erlang": { "revision": "56942778b5791d07949e6c7b6093e01aba5b7ab4" }, + "facility": { + "revision": "a2f90a0d4a3c41bcaa80cabb5f7467daefcd33f4" + }, "fennel": { "revision": "517195970428aacca60891b050aa53eabf4ba78d" }, diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua index ff1fe7660..3945f1167 100644 --- a/lua/nvim-treesitter/parsers.lua +++ b/lua/nvim-treesitter/parsers.lua @@ -496,6 +496,15 @@ list.erlang = { maintainers = { "@filmor" }, } +list.facility = { + install_info = { + url = "https://github.com/FacilityApi/tree-sitter-facility", + files = { "src/parser.c" }, + }, + filetype = "fsd", + maintainers = { "@bryankenote" }, +} + list.fennel = { install_info = { url = "https://github.com/travonted/tree-sitter-fennel", diff --git a/queries/facility/folds.scm b/queries/facility/folds.scm new file mode 100644 index 000000000..7d8bafc80 --- /dev/null +++ b/queries/facility/folds.scm @@ -0,0 +1,6 @@ +[ + (service) + (method) + (dto) + (enum) +] @fold diff --git a/queries/facility/highlights.scm b/queries/facility/highlights.scm new file mode 100644 index 000000000..c10ff49be --- /dev/null +++ b/queries/facility/highlights.scm @@ -0,0 +1,81 @@ +[ + ";" + "." + "," +] @punctuation.delimiter + +[ + "(" + ")" + "[" + "]" + "{" + "}" +] @punctuation.bracket + +(comment) @comment @spell +(doc_comment) @comment.documentation @spell + +"method" @keyword.function + +[ + "service" + "errors" + "data" + "enum" + "extern" +] @type.builtin + +(type) @type.builtin + +(service + service_name: (identifier) @type) + +(error_set + (identifier) @property) + +(error_set + name: (identifier) @type) + +(dto + name: (identifier) @type) + +(external_dto + name: (identifier) @type) + +(enum + (values_block + (identifier) @constant)) + +(enum + name: (identifier) @type) + +(external_enum + name: (identifier) @type) + +(type + name: (identifier) @type) + +[ + "map" + "nullable" + "result" + "required" + "http" + "csharp" + "js" + "info" + "obsolete" +] @attribute.builtin + +(parameter + name: (identifier) @property) + +(field + name: (identifier) @variable) + +(method + name: (identifier) @method) + +(number_literal) @number +(string_literal) @string diff --git a/queries/facility/indents.scm b/queries/facility/indents.scm new file mode 100644 index 000000000..96a24f202 --- /dev/null +++ b/queries/facility/indents.scm @@ -0,0 +1,8 @@ +[ + (service_block) + (values_block) + (field_list) +] @indent.begin + +"}" @indent.branch + diff --git a/queries/facility/injections.scm b/queries/facility/injections.scm new file mode 100644 index 000000000..572849ab4 --- /dev/null +++ b/queries/facility/injections.scm @@ -0,0 +1,5 @@ +((remarks) @injection.content + (#set! injection.language "markdown")) + +([(comment) (doc_comment)] @injection.content + (#set! injection.language "comment")) |
