Add rust locals.scm

This commit is contained in:
Stephan Seitz
2020-07-11 00:10:17 +02:00
committed by Thomas Vigouroux
parent 97ad374816
commit a027ffbe82
4 changed files with 111 additions and 1 deletions

View File

@@ -131,6 +131,7 @@ are optional and will not have any effect for now.
macro
type
field
namespace for modules or C++ namespaces
import for imported names
doc for documentation adjacent to a definition. E.g.
```

View File

@@ -31,7 +31,7 @@
;; References
(identifier) @reference
(type_identifier) @reference
(type_identifier) @reference.type
;; Scope
[

View File

@@ -23,6 +23,13 @@
(alias_declaration
name: (type_identifier) @definition.type)
;; Namespaces
(namespace_definition
name: (identifier) @definition.namespace
body (_) @scope)
(namespace_identifier) @reference.namespace
;; Function defintions
(template_function
name: (identifier) @definition.function) @scope

102
queries/rust/locals.scm Normal file
View File

@@ -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