aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author涵曦 <im.hanxi@gmail.com>2025-08-11 15:21:23 +0800
committerChristian Clason <ch.clason+github@icloud.com>2025-08-12 10:24:58 +0200
commit13e3ce3bf41521551b8d1daf401d31938f62e7ef (patch)
tree25ff798ff0db5b217d52e231a02e5e7a7fef539b
parentfeat(parsers): update c3, c_sharp, desktop, editorconfig, fennel, gdshader, j... (diff)
downloadnvim-treesitter-13e3ce3bf41521551b8d1daf401d31938f62e7ef.tar
nvim-treesitter-13e3ce3bf41521551b8d1daf401d31938f62e7ef.tar.gz
nvim-treesitter-13e3ce3bf41521551b8d1daf401d31938f62e7ef.tar.bz2
nvim-treesitter-13e3ce3bf41521551b8d1daf401d31938f62e7ef.tar.lz
nvim-treesitter-13e3ce3bf41521551b8d1daf401d31938f62e7ef.tar.xz
nvim-treesitter-13e3ce3bf41521551b8d1daf401d31938f62e7ef.tar.zst
nvim-treesitter-13e3ce3bf41521551b8d1daf401d31938f62e7ef.zip
feat(sproto): add parser
-rw-r--r--SUPPORTED_LANGUAGES.md1
-rw-r--r--lua/nvim-treesitter/parsers.lua8
-rw-r--r--runtime/queries/sproto/folds.scm6
-rw-r--r--runtime/queries/sproto/highlights.scm47
-rw-r--r--runtime/queries/sproto/indents.scm10
-rw-r--r--runtime/queries/sproto/injections.scm2
6 files changed, 74 insertions, 0 deletions
diff --git a/SUPPORTED_LANGUAGES.md b/SUPPORTED_LANGUAGES.md
index 7a7f23505..ceb928e72 100644
--- a/SUPPORTED_LANGUAGES.md
+++ b/SUPPORTED_LANGUAGES.md
@@ -269,6 +269,7 @@ jsx (queries only)[^jsx] | unstable | `HFIJ ` | | @steelsojka
[sosl](https://github.com/aheber/tree-sitter-sfapex) | unstable | `H    ` | | @aheber, @xixiafinland
[sourcepawn](https://github.com/nilshelmig/tree-sitter-sourcepawn) | unstable | `H  JL` | | @Sarrus1
[sparql](https://github.com/GordianDziwis/tree-sitter-sparql) | unstable | `HFIJL` | | @GordianDziwis
+[sproto](https://github.com/hanxi/tree-sitter-sproto) | unstable | `HFIJ ` | | @hanxi
[sql](https://github.com/derekstride/tree-sitter-sql) | unstable | `HFIJ ` | | @derekstride
[squirrel](https://github.com/tree-sitter-grammars/tree-sitter-squirrel) | unstable | `HFIJL` | | @amaanq
[ssh_config](https://github.com/tree-sitter-grammars/tree-sitter-ssh-config) | unstable | `HFIJL` | | @ObserverOfTime
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index 2cb92ef3b..98e9ef78a 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -2115,6 +2115,14 @@ return {
maintainers = { '@GordianDziwis' },
tier = 2,
},
+ sproto = {
+ install_info = {
+ revision = 'd554c1456e35e7b2690552d52921c987d0cf6799',
+ url = 'https://github.com/hanxi/tree-sitter-sproto',
+ },
+ maintainers = { '@hanxi' },
+ tier = 2,
+ },
sql = {
install_info = {
branch = 'gh-pages',
diff --git a/runtime/queries/sproto/folds.scm b/runtime/queries/sproto/folds.scm
new file mode 100644
index 000000000..03253d108
--- /dev/null
+++ b/runtime/queries/sproto/folds.scm
@@ -0,0 +1,6 @@
+[
+ (type_definition)
+ (protocol_definition)
+ (request_block)
+ (response_block)
+] @fold
diff --git a/runtime/queries/sproto/highlights.scm b/runtime/queries/sproto/highlights.scm
new file mode 100644
index 000000000..cd86ed22d
--- /dev/null
+++ b/runtime/queries/sproto/highlights.scm
@@ -0,0 +1,47 @@
+(comment) @comment @spell
+
+[
+ "."
+ ":"
+] @punctuation.delimiter
+
+"*" @operator
+
+[
+ "request"
+ "response"
+] @keyword
+
+(type_definition
+ name: (identifier) @type)
+
+(nested_type_definition
+ name: (identifier) @type)
+
+(type_specifier) @type
+
+[
+ "integer"
+ "boolean"
+ "string"
+ "binary"
+ "double"
+] @type.builtin
+
+(protocol_definition
+ name: (identifier) @function)
+
+(field_definition
+ name: (identifier) @property)
+
+(map_specifier
+ key: (identifier) @property)
+
+(integer) @number
+
+[
+ "("
+ ")"
+ "{"
+ "}"
+] @punctuation.bracket
diff --git a/runtime/queries/sproto/indents.scm b/runtime/queries/sproto/indents.scm
new file mode 100644
index 000000000..33147d540
--- /dev/null
+++ b/runtime/queries/sproto/indents.scm
@@ -0,0 +1,10 @@
+[
+ (type_definition)
+ (protocol_definition)
+ (request_block)
+ (response_block)
+] @indent.begin
+
+"}" @indent.end @indent.branch
+
+(comment) @indent.auto
diff --git a/runtime/queries/sproto/injections.scm b/runtime/queries/sproto/injections.scm
new file mode 100644
index 000000000..2f0e58eb6
--- /dev/null
+++ b/runtime/queries/sproto/injections.scm
@@ -0,0 +1,2 @@
+((comment) @injection.content
+ (#set! injection.language "comment"))