diff options
| author | Stephan Seitz <stephan.seitz@fau.de> | 2020-07-11 00:10:17 +0200 |
|---|---|---|
| committer | Thomas Vigouroux <39092278+vigoux@users.noreply.github.com> | 2020-07-13 22:25:33 +0200 |
| commit | a027ffbe825d543f9637bb636ebb61b9ada41592 (patch) | |
| tree | 3c11335b9972c610ff503839c0af69387a8a928a | |
| parent | Fix #167: Add custom_captures config key to set highlights for custom queries (diff) | |
| download | nvim-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.md | 1 | ||||
| -rw-r--r-- | queries/c/locals.scm | 2 | ||||
| -rw-r--r-- | queries/cpp/locals.scm | 7 | ||||
| -rw-r--r-- | queries/rust/locals.scm | 102 |
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 + |
