Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'runtime/queries/cairo/textobjects.scm')
-rw-r--r--runtime/queries/cairo/textobjects.scm74
1 files changed, 73 insertions, 1 deletions
diff --git a/runtime/queries/cairo/textobjects.scm b/runtime/queries/cairo/textobjects.scm
index ae55c7fa..4031873d 100644
--- a/runtime/queries/cairo/textobjects.scm
+++ b/runtime/queries/cairo/textobjects.scm
@@ -1 +1,73 @@
-; inherits: rust
+(function_item
+ body: (_) @function.inside) @function.around
+
+(struct_item
+ body: (_) @class.inside) @class.around
+
+(enum_item
+ body: (_) @class.inside) @class.around
+
+(trait_item
+ body: (_) @class.inside) @class.around
+
+(impl_item
+ body: (_) @class.inside) @class.around
+
+(parameters
+ ((_) @parameter.inside . ","? @parameter.around) @parameter.around)
+
+(type_parameters
+ ((_) @parameter.inside . ","? @parameter.around) @parameter.around)
+
+(type_arguments
+ ((_) @parameter.inside . ","? @parameter.around) @parameter.around)
+
+(arguments
+ ((_) @parameter.inside . ","? @parameter.around) @parameter.around)
+
+(field_initializer_list
+ ((_) @parameter.inside . ","? @parameter.around) @parameter.around)
+
+[
+ (line_comment)
+] @comment.inside
+
+(line_comment)+ @comment.around
+
+(; #[test]
+ (attribute_item
+ (attribute
+ (identifier) @_test_attribute))
+ ; allow other attributes like #[should_panic] and comments
+ [
+ (attribute_item)
+ (line_comment)
+ ]*
+ ; the test function
+ (function_item
+ body: (_) @test.inside) @test.around
+ (#eq? @_test_attribute "test"))
+
+(array_expression
+ (_) @entry.around)
+
+(tuple_expression
+ (_) @entry.around)
+
+(tuple_pattern
+ (_) @entry.around)
+
+; Commonly used vec macro intializer is special cased
+(macro_invocation
+ (identifier) @_id (token_tree (_) @entry.around)
+ (#eq? @_id "array"))
+
+(enum_variant) @entry.around
+
+(field_declaration
+ (_) @entry.inside) @entry.around
+
+(field_initializer
+ (_) @entry.inside) @entry.around
+
+(shorthand_field_initializer) @entry.around