aboutsummaryrefslogtreecommitdiff
path: root/runtime/queries/rust
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/queries/rust')
-rw-r--r--runtime/queries/rust/highlights.scm35
-rw-r--r--runtime/queries/rust/textobjects.scm26
2 files changed, 50 insertions, 11 deletions
diff --git a/runtime/queries/rust/highlights.scm b/runtime/queries/rust/highlights.scm
index 956a5dac..539d9550 100644
--- a/runtime/queries/rust/highlights.scm
+++ b/runtime/queries/rust/highlights.scm
@@ -15,15 +15,13 @@
; Primitives
; ---
-(escape_sequence) @escape
+(escape_sequence) @constant.character.escape
(primitive_type) @type.builtin
(boolean_literal) @constant.builtin.boolean
+(integer_literal) @constant.numeric.integer
+(float_literal) @constant.numeric.float
+(char_literal) @constant.character
[
- (integer_literal)
- (float_literal)
-] @number
-[
- (char_literal)
(string_literal)
(raw_string_literal)
] @string
@@ -40,10 +38,10 @@
(enum_variant (identifier) @type.enum.variant)
(field_initializer
- (field_identifier) @property)
+ (field_identifier) @variable.other.member)
(shorthand_field_initializer
- (identifier) @variable.property)
-(shorthand_field_identifier) @variable.property
+ (identifier) @variable.other.member)
+(shorthand_field_identifier) @variable.other.member
(lifetime
"'" @label
@@ -81,9 +79,24 @@
] @punctuation.bracket)
; ---
-; Parameters
+; Variables
; ---
+(let_declaration
+ pattern: [
+ ((identifier) @variable)
+ ((tuple_pattern
+ (identifier) @variable))
+ ])
+
+; It needs to be anonymous to not conflict with `call_expression` further below.
+(_
+ value: (field_expression
+ value: (identifier)? @variable
+ field: (field_identifier) @variable.other.member))
+
+(arguments
+ (identifier) @variable.parameter)
(parameter
pattern: (identifier) @variable.parameter)
(closure_parameters
@@ -336,4 +349,4 @@
(type_identifier) @type
(identifier) @variable
-(field_identifier) @property
+(field_identifier) @variable.other.member
diff --git a/runtime/queries/rust/textobjects.scm b/runtime/queries/rust/textobjects.scm
new file mode 100644
index 00000000..e3132687
--- /dev/null
+++ b/runtime/queries/rust/textobjects.scm
@@ -0,0 +1,26 @@
+(function_item
+ body: (_) @function.inside) @function.around
+
+(struct_item
+ body: (_) @class.inside) @class.around
+
+(enum_item
+ body: (_) @class.inside) @class.around
+
+(union_item
+ body: (_) @class.inside) @class.around
+
+(trait_item
+ body: (_) @class.inside) @class.around
+
+(impl_item
+ body: (_) @class.inside) @class.around
+
+(parameters
+ (_) @parameter.inside)
+
+(closure_parameters
+ (_) @parameter.inside)
+
+(arguments
+ (_) @parameter.inside)