summaryrefslogtreecommitdiff
path: root/queries/rust
diff options
context:
space:
mode:
authorStephan Seitz <stephan.seitz@fau.de>2020-07-11 00:10:17 +0200
committerThomas Vigouroux <39092278+vigoux@users.noreply.github.com>2020-07-13 22:25:33 +0200
commita027ffbe825d543f9637bb636ebb61b9ada41592 (patch)
tree3c11335b9972c610ff503839c0af69387a8a928a /queries/rust
parent97ad374816726661c3e5447fafd46264ad00409d (diff)
Add rust locals.scm
Diffstat (limited to 'queries/rust')
-rw-r--r--queries/rust/locals.scm102
1 files changed, 102 insertions, 0 deletions
diff --git a/queries/rust/locals.scm b/queries/rust/locals.scm
new file mode 100644
index 00000000..1b372ed9
--- /dev/null
+++ b/queries/rust/locals.scm
@@ -0,0 +1,102 @@
+; Imports
+(extern_crate_declaration
+ name: (identifier) @definition.import)
+
+(use_declaration
+ argument: (scoped_identifier
+ name: (identifier) @definition.import))
+
+(use_as_clause
+ alias: (identifier) @definition.import)
+
+(use_list
+ (identifier) @definition.import) ; use std::process::{Child, Command, Stdio};
+
+; Functions
+(function_item
+ name: (identifier) @definition.function)
+
+(function_item
+ name: (identifier) @definition.method
+ parameters: (parameters
+ (self_parameter)))
+
+; Variables
+(parameter
+ pattern: (identifier) @definition.var)
+
+(let_declaration
+ pattern: (identifier) @definition.var)
+
+(const_item
+ name: (identifier) @definition.var)
+
+(tuple_pattern
+ (identifier) @definition.var)
+
+(if_let_expression
+ pattern: (_
+ (identifier) @definition.var))
+
+(tuple_struct_pattern
+ (identifier) @definition.var)
+
+(closure_parameters
+ (identifier) @definition.var)
+
+(self_parameter
+ (self) @definition.var)
+
+(for_expression
+ pattern: (identifier) @definition.var)
+
+; Types
+(struct_item
+ name: (type_identifier) @definition.type)
+
+(constrained_type_parameter
+ left: (type_identifier) @definition.type) ; the P in remove_file<P: AsRef<Path>>(path: P)
+
+(enum_item
+ name: (type_identifier) @definition.type)
+
+
+; Fields
+(field_declaration
+ name: (field_identifier) @definition.field)
+
+(enum_variant
+ name: (identifier) @definition.field)
+
+; References
+(identifier) @reference
+(type_identifier) @reference.type
+(field_identifier) @reference.field
+
+
+; Macros
+(macro_definition
+ name: (identifier) @definition.macro)
+
+; Module
+(mod_item
+ name: (identifier) @definition.namespace)
+
+; Scopes
+[
+ (block)
+ (function_item)
+ (closure_expression)
+ (while_expression)
+ (for_expression)
+ (loop_expression)
+ (if_expression)
+ (if_let_expression)
+ (match_expression)
+ (match_arm)
+
+ (struct_item)
+ (enum_item)
+ (impl_item)
+] @scope
+