aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruno BELANYI <bruno@belanyi.fr>2024-05-23 17:30:26 +0200
committerGitHub <noreply@github.com>2024-05-23 17:30:26 +0200
commit298a9dd4f8a0d95b347a7ebd301849d8b0e3917e (patch)
tree5b8392ec5f55479c9a04a8a722fef85d8329c889
parentbot(lockfile): update ada, clojure, mlir, templ (diff)
downloadnvim-treesitter-298a9dd4f8a0d95b347a7ebd301849d8b0e3917e.tar
nvim-treesitter-298a9dd4f8a0d95b347a7ebd301849d8b0e3917e.tar.gz
nvim-treesitter-298a9dd4f8a0d95b347a7ebd301849d8b0e3917e.tar.bz2
nvim-treesitter-298a9dd4f8a0d95b347a7ebd301849d8b0e3917e.tar.lz
nvim-treesitter-298a9dd4f8a0d95b347a7ebd301849d8b0e3917e.tar.xz
nvim-treesitter-298a9dd4f8a0d95b347a7ebd301849d8b0e3917e.tar.zst
nvim-treesitter-298a9dd4f8a0d95b347a7ebd301849d8b0e3917e.zip
feat(bp): add support for Android Blueprint (#6626)
-rw-r--r--README.md1
-rw-r--r--lockfile.json3
-rw-r--r--lua/nvim-treesitter/parsers.lua8
-rw-r--r--queries/bp/folds.scm6
-rw-r--r--queries/bp/highlights.scm55
-rw-r--r--queries/bp/indents.scm38
-rw-r--r--queries/bp/injections.scm2
-rw-r--r--queries/bp/locals.scm12
8 files changed, 125 insertions, 0 deletions
diff --git a/README.md b/README.md
index 955d6628c..6887b6f71 100644
--- a/README.md
+++ b/README.md
@@ -189,6 +189,7 @@ We are looking for maintainers to add more parsers and to write query files for
- [x] [bicep](https://github.com/amaanq/tree-sitter-bicep) (maintained by @amaanq)
- [x] [bitbake](https://github.com/amaanq/tree-sitter-bitbake) (maintained by @amaanq)
- [x] [blueprint](https://gitlab.com/gabmus/tree-sitter-blueprint.git) (experimental, maintained by @gabmus)
+- [x] [bp](https://github.com/ambroisie/tree-sitter-bp) (maintained by @ambroisie)
- [x] [c](https://github.com/tree-sitter/tree-sitter-c) (maintained by @amaanq)
- [x] [c_sharp](https://github.com/tree-sitter/tree-sitter-c-sharp) (maintained by @amaanq)
- [x] [cairo](https://github.com/amaanq/tree-sitter-cairo) (maintained by @amaanq)
diff --git a/lockfile.json b/lockfile.json
index b153620bf..5f443bf8d 100644
--- a/lockfile.json
+++ b/lockfile.json
@@ -47,6 +47,9 @@
"blueprint": {
"revision": "60ba73739c6083c693d86a1a7cf039c07eb4ed59"
},
+ "bp": {
+ "revision": "2326d709fb9cf73cf124fdbc803c267f851721a4"
+ },
"c": {
"revision": "82fb86aa544843bd17a9f0f3dc16edf645a34349"
},
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index a3351d176..d2abb9d53 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -210,6 +210,14 @@ list.blueprint = {
experimental = true,
}
+list.bp = {
+ install_info = {
+ url = "https://github.com/ambroisie/tree-sitter-bp",
+ files = { "src/parser.c" },
+ },
+ maintainers = { "@ambroisie" },
+}
+
list.c = {
install_info = {
url = "https://github.com/tree-sitter/tree-sitter-c",
diff --git a/queries/bp/folds.scm b/queries/bp/folds.scm
new file mode 100644
index 000000000..c40ea3df4
--- /dev/null
+++ b/queries/bp/folds.scm
@@ -0,0 +1,6 @@
+[
+ (list_expression)
+ (map_expression)
+ (module)
+ (select_expression)
+] @fold
diff --git a/queries/bp/highlights.scm b/queries/bp/highlights.scm
new file mode 100644
index 000000000..d18e6eea0
--- /dev/null
+++ b/queries/bp/highlights.scm
@@ -0,0 +1,55 @@
+(comment) @comment @spell
+
+(operator) @operator
+
+(integer_literal
+ "-" @operator)
+
+[
+ ","
+ ":"
+] @punctuation.delimiter
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ "{"
+ "}"
+] @punctuation.bracket
+
+(boolean_literal) @boolean
+
+(integer_literal) @number
+
+[
+ (raw_string_literal)
+ (interpreted_string_literal)
+] @string
+
+(escape_sequence) @string.escape
+
+(identifier) @variable
+
+(module
+ type: (identifier) @function.call)
+
+(module
+ (property
+ field: (identifier) @variable.parameter))
+
+[
+ (unset)
+ (default)
+] @variable.builtin
+
+(condition
+ name: (identifier) @function.builtin)
+
+(map_expression
+ (property
+ field: (identifier) @property))
+
+(select_expression
+ "select" @keyword.conditional)
diff --git a/queries/bp/indents.scm b/queries/bp/indents.scm
new file mode 100644
index 000000000..8cf8adc83
--- /dev/null
+++ b/queries/bp/indents.scm
@@ -0,0 +1,38 @@
+(list_expression) @indent.begin
+
+(list_expression
+ "]" @indent.branch)
+
+(map_expression) @indent.begin
+
+(map_expression
+ "}" @indent.branch)
+
+(select_expression) @indent.begin
+
+(select_expression
+ ")" @indent.branch)
+
+(select_value) @indent.begin
+
+(select_value
+ ")" @indent.branch)
+
+(select_pattern
+ "(" @indent.begin)
+
+(select_pattern
+ ")" @indent.branch)
+
+(select_cases) @indent.begin
+
+(select_cases
+ "}" @indent.branch)
+
+(module) @indent.begin
+
+(module
+ ")" @indent.branch)
+
+(module
+ "}" @indent.branch)
diff --git a/queries/bp/injections.scm b/queries/bp/injections.scm
new file mode 100644
index 000000000..2f0e58eb6
--- /dev/null
+++ b/queries/bp/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/queries/bp/locals.scm b/queries/bp/locals.scm
new file mode 100644
index 000000000..66b444fc6
--- /dev/null
+++ b/queries/bp/locals.scm
@@ -0,0 +1,12 @@
+(module
+ (property
+ field: (identifier) @local.definition.parameter))
+
+(map_expression
+ (property
+ field: (identifier) @local.definition.field))
+
+(assignment
+ left: (identifier) @local.definition.var)
+
+(identifier) @local.reference