aboutsummaryrefslogtreecommitdiffstats
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
parentFix #167: Add custom_captures config key to set highlights for custom queries (diff)
downloadnvim-treesitter-a027ffbe825d543f9637bb636ebb61b9ada41592.tar
nvim-treesitter-a027ffbe825d543f9637bb636ebb61b9ada41592.tar.gz
nvim-treesitter-a027ffbe825d543f9637bb636ebb61b9ada41592.tar.bz2
nvim-treesitter-a027ffbe825d543f9637bb636ebb61b9ada41592.tar.lz
nvim-treesitter-a027ffbe825d543f9637bb636ebb61b9ada41592.tar.xz
nvim-treesitter-a027ffbe825d543f9637bb636ebb61b9ada41592.tar.zst
nvim-treesitter-a027ffbe825d543f9637bb636ebb61b9ada41592.zip
Add rust locals.scm
-rw-r--r--CONTRIBUTING.md1
-rw-r--r--queries/c/locals.scm2
-rw-r--r--queries/cpp/locals.scm7
-rw-r--r--queries/rust/locals.scm102
4 files changed, 111 insertions, 1 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 6d3288cb4..8091c6203 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -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.
```
diff --git a/queries/c/locals.scm b/queries/c/locals.scm
index e0b186c30..ee052d5c0 100644
--- a/queries/c/locals.scm
+++ b/queries/c/locals.scm
@@ -31,7 +31,7 @@
;; References
(identifier) @reference
-(type_identifier) @reference
+(type_identifier) @reference.type
;; Scope
[
diff --git a/queries/cpp/locals.scm b/queries/cpp/locals.scm
index 712f82912..1f7ff28d7 100644
--- a/queries/cpp/locals.scm
+++ b/queries/cpp/locals.scm
@@ -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
diff --git a/queries/rust/locals.scm b/queries/rust/locals.scm
new file mode 100644
index 000000000..1b372ed9d
--- /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
+