From bf982eb7dc9d54af748ea1dd8b9db3a7724b9a99 Mon Sep 17 00:00:00 2001 From: Bryan Kenote <9691017+bryankenote@users.noreply.github.com> Date: Tue, 28 Nov 2023 17:24:43 +0000 Subject: feat: add facility --- README.md | 1 + lockfile.json | 3 ++ lua/nvim-treesitter/parsers.lua | 9 +++++ queries/facility/folds.scm | 6 +++ queries/facility/highlights.scm | 81 +++++++++++++++++++++++++++++++++++++++++ queries/facility/indents.scm | 8 ++++ queries/facility/injections.scm | 5 +++ 7 files changed, 113 insertions(+) create mode 100644 queries/facility/folds.scm create mode 100644 queries/facility/highlights.scm create mode 100644 queries/facility/indents.scm create mode 100644 queries/facility/injections.scm diff --git a/README.md b/README.md index fae63f196..3d0e495ef 100644 --- a/README.md +++ b/README.md @@ -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")) -- cgit v1.2.3-70-g09d2