aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Seitz <stephan.seitz@fau.de>2023-11-18 20:52:31 +0100
committerStephan Seitz <stephan.seitz@fau.de>2023-11-29 00:54:24 -0800
commit10432e6b0fb22a0fbe7b8fa45f7fbee187029d90 (patch)
tree849104835f3ec543ca752ea994a3694087b0ad4a
parentUpdate parsers: css, facility, foam, wing (diff)
downloadnvim-treesitter-10432e6b0fb22a0fbe7b8fa45f7fbee187029d90.tar
nvim-treesitter-10432e6b0fb22a0fbe7b8fa45f7fbee187029d90.tar.gz
nvim-treesitter-10432e6b0fb22a0fbe7b8fa45f7fbee187029d90.tar.bz2
nvim-treesitter-10432e6b0fb22a0fbe7b8fa45f7fbee187029d90.tar.lz
nvim-treesitter-10432e6b0fb22a0fbe7b8fa45f7fbee187029d90.tar.xz
nvim-treesitter-10432e6b0fb22a0fbe7b8fa45f7fbee187029d90.tar.zst
nvim-treesitter-10432e6b0fb22a0fbe7b8fa45f7fbee187029d90.zip
parsers: add tree-sitter-slang
-rw-r--r--README.md1
-rw-r--r--lockfile.json3
-rw-r--r--lua/nvim-treesitter/parsers.lua11
-rw-r--r--queries/slang/folds.scm9
-rw-r--r--queries/slang/highlights.scm42
-rw-r--r--queries/slang/indents.scm6
-rw-r--r--queries/slang/injections.scm5
-rw-r--r--queries/slang/locals.scm1
8 files changed, 78 insertions, 0 deletions
diff --git a/README.md b/README.md
index 3d0e495ef..8a5c41651 100644
--- a/README.md
+++ b/README.md
@@ -360,6 +360,7 @@ We are looking for maintainers to add more parsers and to write query files for
- [x] [scfg](https://git.sr.ht/~rockorager/tree-sitter-scfg) (maintained by @WhyNotHugo)
- [ ] [scheme](https://github.com/6cdh/tree-sitter-scheme)
- [x] [scss](https://github.com/serenadeai/tree-sitter-scss) (maintained by @elianiva)
+- [x] [slang](https://github.com/theHamsta/tree-sitter-slang) (experimental, maintained by @theHamsta)
- [x] [slint](https://github.com/jrmoulton/tree-sitter-slint) (experimental, maintained by @jrmoulton)
- [x] [smali](https://git.sr.ht/~yotam/tree-sitter-smali) (maintained by @amaanq)
- [x] [smithy](https://github.com/indoorvivants/tree-sitter-smithy) (maintained by @amaanq, @keynmol)
diff --git a/lockfile.json b/lockfile.json
index fe6355734..6ff0b40f9 100644
--- a/lockfile.json
+++ b/lockfile.json
@@ -560,6 +560,9 @@
"scss": {
"revision": "c478c6868648eff49eb04a4df90d703dc45b312a"
},
+ "slang": {
+ "revision": "47415d3f9ed2b3df9b9fc5f5d0ee1a71be3c67e0"
+ },
"slint": {
"revision": "00c8a2d3645766f68c0d0460086c0a994e5b0d85"
},
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index 3945f1167..86bb7e358 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -1649,6 +1649,17 @@ list.scss = {
maintainers = { "@elianiva" },
}
+list.slang = {
+ install_info = {
+ url = "https://github.com/theHamsta/tree-sitter-slang",
+ files = { "src/parser.c", "src/scanner.c" },
+ generate_requires_npm = true,
+ },
+ filetype = "shaderslang",
+ maintainers = { "@theHamsta" },
+ experimental = true,
+}
+
list.slint = {
install_info = {
url = "https://github.com/jrmoulton/tree-sitter-slint",
diff --git a/queries/slang/folds.scm b/queries/slang/folds.scm
new file mode 100644
index 000000000..c8cc87643
--- /dev/null
+++ b/queries/slang/folds.scm
@@ -0,0 +1,9 @@
+; inherits: hlsl
+
+[
+ (interface_specifier)
+ (extension_specifier)
+ (property_declaration)
+ (subscript_declaration)
+ (init_declaration)
+] @fold
diff --git a/queries/slang/highlights.scm b/queries/slang/highlights.scm
new file mode 100644
index 000000000..6fd5f45ea
--- /dev/null
+++ b/queries/slang/highlights.scm
@@ -0,0 +1,42 @@
+; inherits: hlsl
+
+[
+ "var"
+ "let"
+ "This"
+] @type.builtin
+
+[
+ "interface"
+ "extension"
+ "property"
+] @keyword
+
+[
+ "__init"
+] @constructor
+
+[
+ "__subscript"
+ "get"
+ "set"
+] @function.builtin
+
+(interface_requirements (identifier) @type)
+
+(binary_expression
+ ["is" "as"]
+ right: (identifier) @type)
+
+[
+ "as"
+ "is"
+] @keyword.operator
+
+[
+ "__exported"
+ "import"
+] @include
+
+(property_declaration
+ (identifier) @property)
diff --git a/queries/slang/indents.scm b/queries/slang/indents.scm
new file mode 100644
index 000000000..6175ac5bc
--- /dev/null
+++ b/queries/slang/indents.scm
@@ -0,0 +1,6 @@
+; inherits: hlsl
+
+[
+ (interface_specifier)
+ (extension_specifier)
+] @indent.begin
diff --git a/queries/slang/injections.scm b/queries/slang/injections.scm
new file mode 100644
index 000000000..bf83e478a
--- /dev/null
+++ b/queries/slang/injections.scm
@@ -0,0 +1,5 @@
+((preproc_arg) @injection.content
+ (#set! injection.language "slang"))
+
+((comment) @injection.content
+ (#set! injection.language "comment"))
diff --git a/queries/slang/locals.scm b/queries/slang/locals.scm
new file mode 100644
index 000000000..647bd1fef
--- /dev/null
+++ b/queries/slang/locals.scm
@@ -0,0 +1 @@
+; inherits: hlsl