aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md1
-rw-r--r--lua/nvim-treesitter/parsers.lua9
-rw-r--r--queries/turtle/folds.scm4
-rw-r--r--queries/turtle/highlights.scm58
-rw-r--r--queries/turtle/indents.scm10
-rw-r--r--queries/turtle/locals.scm12
6 files changed, 94 insertions, 0 deletions
diff --git a/README.md b/README.md
index b7d46d61e..88231a01c 100644
--- a/README.md
+++ b/README.md
@@ -172,6 +172,7 @@ We are looking for maintainers to add more parsers and to write query files for
- [x] [teal](https://github.com/euclidianAce/tree-sitter-teal) (maintained by @euclidianAce)
- [x] [toml](https://github.com/ikatyang/tree-sitter-toml) (maintained by @tk-shirasaka)
- [ ] [tsx](https://github.com/tree-sitter/tree-sitter-typescript)
+- [x] [turtle](https://github.com/BonaBeavis/tree-sitter-turtle) (maintained by @bonabeavis)
- [x] [typescript](https://github.com/tree-sitter/tree-sitter-typescript) (maintained by @steelsojka)
- [x] [verilog](https://github.com/tree-sitter/tree-sitter-verilog) (maintained by @zegervdv)
- [ ] [vue](https://github.com/ikatyang/tree-sitter-vue)
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index cdcb6fc68..d0db752ba 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -399,6 +399,15 @@ list.gdscript = {
maintainers = {"not @tjdevries"},
}
+list.turtle = {
+ install_info = {
+ url = "https://github.com/BonaBeavis/tree-sitter-turtle",
+ files = { "src/parser.c" },
+ branch = "main",
+ },
+ maintainers = { "@bonabeavis" },
+}
+
local M = {
list = list
}
diff --git a/queries/turtle/folds.scm b/queries/turtle/folds.scm
new file mode 100644
index 000000000..863e442a7
--- /dev/null
+++ b/queries/turtle/folds.scm
@@ -0,0 +1,4 @@
+[
+ (statement)
+ (blank_node_property_list)
+] @fold
diff --git a/queries/turtle/highlights.scm b/queries/turtle/highlights.scm
new file mode 100644
index 000000000..0608f96ae
--- /dev/null
+++ b/queries/turtle/highlights.scm
@@ -0,0 +1,58 @@
+(string) @string
+
+(lang_tag) @type
+
+[
+ "_:"
+ "<"
+ ">"
+ (namespace)
+] @namespace
+
+[
+ (iri_reference)
+ (prefixed_name)
+] @variable
+
+(blank_node_label) @variable
+
+"a" @variable.builtin
+
+(integer) @number
+
+[
+ (decimal)
+ (double)
+] @float
+
+(boolean_literal) @boolean
+
+[
+ "BASE"
+ "PREFIX"
+ "@prefix"
+ "@base"
+] @keyword
+
+[
+ "."
+ ","
+ ";"
+] @punctuation.delimiter
+
+[
+ "("
+ ")"
+ "["
+ "]"
+ (anon)
+] @punctuation.bracket
+
+(comment) @comment
+
+(echar) @string.escape
+
+
+(rdf_literal
+ "^^" @type
+ datatype: (_ ["<" ">" (namespace)] @type) @type)
diff --git a/queries/turtle/indents.scm b/queries/turtle/indents.scm
new file mode 100644
index 000000000..839f50c71
--- /dev/null
+++ b/queries/turtle/indents.scm
@@ -0,0 +1,10 @@
+[
+ (statement)
+ (blank_node_property_list)
+ (collection)
+] @indent
+[
+ "]"
+ ")"
+] @branch
+
diff --git a/queries/turtle/locals.scm b/queries/turtle/locals.scm
new file mode 100644
index 000000000..e791f0bbd
--- /dev/null
+++ b/queries/turtle/locals.scm
@@ -0,0 +1,12 @@
+(turtle_doc) @scope
+
+(subject
+ [
+ (prefixed_name)
+ (iri_reference)
+ ] @definition.var)
+
+[
+ (prefixed_name)
+ (iri_reference)
+] @reference