summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBryan Kenote <9691017+bryankenote@users.noreply.github.com>2023-11-28 17:24:43 +0000
committerGitHub <noreply@github.com>2023-11-28 12:24:43 -0500
commitbf982eb7dc9d54af748ea1dd8b9db3a7724b9a99 (patch)
treec368a674eb4ba6c43130111213ea02ef61a25959
parentUpdate parsers: erlang, wing (diff)
downloadnvim-treesitter-bf982eb7dc9d54af748ea1dd8b9db3a7724b9a99.tar
nvim-treesitter-bf982eb7dc9d54af748ea1dd8b9db3a7724b9a99.tar.gz
nvim-treesitter-bf982eb7dc9d54af748ea1dd8b9db3a7724b9a99.tar.bz2
nvim-treesitter-bf982eb7dc9d54af748ea1dd8b9db3a7724b9a99.tar.lz
nvim-treesitter-bf982eb7dc9d54af748ea1dd8b9db3a7724b9a99.tar.xz
nvim-treesitter-bf982eb7dc9d54af748ea1dd8b9db3a7724b9a99.tar.zst
nvim-treesitter-bf982eb7dc9d54af748ea1dd8b9db3a7724b9a99.zip
feat: add facility
-rw-r--r--README.md1
-rw-r--r--lockfile.json3
-rw-r--r--lua/nvim-treesitter/parsers.lua9
-rw-r--r--queries/facility/folds.scm6
-rw-r--r--queries/facility/highlights.scm81
-rw-r--r--queries/facility/indents.scm8
-rw-r--r--queries/facility/injections.scm5
7 files changed, 113 insertions, 0 deletions
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"))