aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmaan Qureshi <amaanq12@gmail.com>2023-02-06 13:34:05 -0500
committerStephan Seitz <stephan.seitz@fau.de>2023-02-18 09:37:41 -0800
commit93386fc725041487d6cac90f602a670a83fedcbc (patch)
treeaf64a255f98c790eb9cea2c2e655e378dbced322
parentfeat: add @text.uri where applicable to thrift and gosum (diff)
downloadnvim-treesitter-93386fc725041487d6cac90f602a670a83fedcbc.tar
nvim-treesitter-93386fc725041487d6cac90f602a670a83fedcbc.tar.gz
nvim-treesitter-93386fc725041487d6cac90f602a670a83fedcbc.tar.bz2
nvim-treesitter-93386fc725041487d6cac90f602a670a83fedcbc.tar.lz
nvim-treesitter-93386fc725041487d6cac90f602a670a83fedcbc.tar.xz
nvim-treesitter-93386fc725041487d6cac90f602a670a83fedcbc.tar.zst
nvim-treesitter-93386fc725041487d6cac90f602a670a83fedcbc.zip
feat(thrift): improve queries
-rw-r--r--lua/nvim-treesitter/parsers.lua1
-rw-r--r--queries/thrift/folds.scm5
-rw-r--r--queries/thrift/indents.scm20
-rw-r--r--queries/thrift/injections.scm1
-rw-r--r--queries/thrift/locals.scm32
5 files changed, 57 insertions, 2 deletions
diff --git a/lua/nvim-treesitter/parsers.lua b/lua/nvim-treesitter/parsers.lua
index f4231eb25..79f0c781e 100644
--- a/lua/nvim-treesitter/parsers.lua
+++ b/lua/nvim-treesitter/parsers.lua
@@ -1323,6 +1323,7 @@ list.thrift = {
install_info = {
url = "https://github.com/duskmoon314/tree-sitter-thrift",
files = { "src/parser.c" },
+ branch = "main",
},
maintainers = { "@amaanq", "@duskmoon314" },
}
diff --git a/queries/thrift/folds.scm b/queries/thrift/folds.scm
index edc8e9cea..0e0a845a8 100644
--- a/queries/thrift/folds.scm
+++ b/queries/thrift/folds.scm
@@ -1,11 +1,12 @@
[
(annotation)
(enum)
+ (exception)
+ (function)
(senum)
(service)
(struct)
(union)
- (function_parameters)
- (exception_parameters)
+ (comment)
] @fold
diff --git a/queries/thrift/indents.scm b/queries/thrift/indents.scm
new file mode 100644
index 000000000..9a5e0455d
--- /dev/null
+++ b/queries/thrift/indents.scm
@@ -0,0 +1,20 @@
+(definition) @indent
+
+; (function (function_identifier) @aligned_indent)
+
+((function_parameters (function_parameter)) @aligned_indent
+ (#set! "delimiter" "()"))
+
+((exception_parameters (exception_parameter)) @aligned_indent
+ (#set! "delimiter" "()"))
+
+"}" @indent_end
+
+[ "{" "}" ] @branch
+
+[ "(" ")" ] @branch
+
+[
+ (ERROR)
+ (comment)
+] @auto
diff --git a/queries/thrift/injections.scm b/queries/thrift/injections.scm
new file mode 100644
index 000000000..4bb7d675d
--- /dev/null
+++ b/queries/thrift/injections.scm
@@ -0,0 +1 @@
+(comment) @comment
diff --git a/queries/thrift/locals.scm b/queries/thrift/locals.scm
new file mode 100644
index 000000000..2275ed9b8
--- /dev/null
+++ b/queries/thrift/locals.scm
@@ -0,0 +1,32 @@
+(document) @scope
+(definition) @scope
+
+[
+ (identifier)
+ (field_type)
+ (custom_type)
+] @reference
+(const_value (const_identifier) @reference)
+
+(annotation_identifier) @definition
+
+(const (const_identifier) @definition.constant)
+(enum_member) @definition.constant
+
+(enum_identifier) @definition.enum
+
+(field_identifier) @definition.field
+
+(function_identifier) @definition.function
+
+(namespace_definition) @definition.namespace
+
+[
+ (param_identifier)
+ (exception_param_identifier)
+] @definition.parameter
+
+[
+ (type_identifier)
+ (exception_identifier)
+] @definition.type