diff options
| author | Christian Clason <c.clason@uni-graz.at> | 2023-06-12 09:54:30 -0600 |
|---|---|---|
| committer | Christian Clason <c.clason@uni-graz.at> | 2025-05-12 18:43:40 +0200 |
| commit | 692b051b09935653befdb8f7ba8afdb640adf17b (patch) | |
| tree | 167162b6b129ae04f68c5735078521a72917c742 /queries/rust | |
| parent | feat(c-family): inherit injections (diff) | |
| download | nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.gz nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.bz2 nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.lz nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.xz nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.tar.zst nvim-treesitter-692b051b09935653befdb8f7ba8afdb640adf17b.zip | |
feat!: drop modules, general refactor and cleanup
Diffstat (limited to 'queries/rust')
| -rw-r--r-- | queries/rust/folds.scm | 25 | ||||
| -rw-r--r-- | queries/rust/highlights.scm | 531 | ||||
| -rw-r--r-- | queries/rust/indents.scm | 132 | ||||
| -rw-r--r-- | queries/rust/injections.scm | 89 | ||||
| -rw-r--r-- | queries/rust/locals.scm | 98 |
5 files changed, 0 insertions, 875 deletions
diff --git a/queries/rust/folds.scm b/queries/rust/folds.scm deleted file mode 100644 index 9237b6f7b..000000000 --- a/queries/rust/folds.scm +++ /dev/null @@ -1,25 +0,0 @@ -[ - (mod_item) - (foreign_mod_item) - (function_item) - (struct_item) - (trait_item) - (enum_item) - (impl_item) - (type_item) - (union_item) - (const_item) - (let_declaration) - (loop_expression) - (for_expression) - (while_expression) - (if_expression) - (match_expression) - (call_expression) - (array_expression) - (macro_definition) - (macro_invocation) - (attribute_item) - (block) - (use_declaration)+ -] @fold diff --git a/queries/rust/highlights.scm b/queries/rust/highlights.scm deleted file mode 100644 index de9d09684..000000000 --- a/queries/rust/highlights.scm +++ /dev/null @@ -1,531 +0,0 @@ -; Forked from https://github.com/tree-sitter/tree-sitter-rust -; Copyright (c) 2017 Maxim Sokolov -; Licensed under the MIT license. -; Identifier conventions -(shebang) @keyword.directive - -(identifier) @variable - -((identifier) @type - (#lua-match? @type "^[A-Z]")) - -(const_item - name: (identifier) @constant) - -; Assume all-caps names are constants -((identifier) @constant - (#lua-match? @constant "^[A-Z][A-Z%d_]*$")) - -; Other identifiers -(type_identifier) @type - -(primitive_type) @type.builtin - -(field_identifier) @variable.member - -(shorthand_field_identifier) @variable.member - -(shorthand_field_initializer - (identifier) @variable.member) - -(mod_item - name: (identifier) @module) - -(self) @variable.builtin - -"_" @character.special - -(label - [ - "'" - (identifier) - ] @label) - -; Function definitions -(function_item - (identifier) @function) - -(function_signature_item - (identifier) @function) - -(parameter - [ - (identifier) - "_" - ] @variable.parameter) - -(parameter - (ref_pattern - [ - (mut_pattern - (identifier) @variable.parameter) - (identifier) @variable.parameter - ])) - -(closure_parameters - (_) @variable.parameter) - -; Function calls -(call_expression - function: (identifier) @function.call) - -(call_expression - function: (scoped_identifier - (identifier) @function.call .)) - -(call_expression - function: (field_expression - field: (field_identifier) @function.call)) - -(generic_function - function: (identifier) @function.call) - -(generic_function - function: (scoped_identifier - name: (identifier) @function.call)) - -(generic_function - function: (field_expression - field: (field_identifier) @function.call)) - -; Assume other uppercase names are enum constructors -((field_identifier) @constant - (#lua-match? @constant "^[A-Z]")) - -(enum_variant - name: (identifier) @constant) - -; Assume that uppercase names in paths are types -(scoped_identifier - path: (identifier) @module) - -(scoped_identifier - (scoped_identifier - name: (identifier) @module)) - -(scoped_type_identifier - path: (identifier) @module) - -(scoped_type_identifier - path: (identifier) @type - (#lua-match? @type "^[A-Z]")) - -(scoped_type_identifier - (scoped_identifier - name: (identifier) @module)) - -((scoped_identifier - path: (identifier) @type) - (#lua-match? @type "^[A-Z]")) - -((scoped_identifier - name: (identifier) @type) - (#lua-match? @type "^[A-Z]")) - -((scoped_identifier - name: (identifier) @constant) - (#lua-match? @constant "^[A-Z][A-Z%d_]*$")) - -((scoped_identifier - path: (identifier) @type - name: (identifier) @constant) - (#lua-match? @type "^[A-Z]") - (#lua-match? @constant "^[A-Z]")) - -((scoped_type_identifier - path: (identifier) @type - name: (type_identifier) @constant) - (#lua-match? @type "^[A-Z]") - (#lua-match? @constant "^[A-Z]")) - -[ - (crate) - (super) -] @module - -(scoped_use_list - path: (identifier) @module) - -(scoped_use_list - path: (scoped_identifier - (identifier) @module)) - -(use_list - (scoped_identifier - (identifier) @module - . - (_))) - -(use_list - (identifier) @type - (#lua-match? @type "^[A-Z]")) - -(use_as_clause - alias: (identifier) @type - (#lua-match? @type "^[A-Z]")) - -; Correct enum constructors -(call_expression - function: (scoped_identifier - "::" - name: (identifier) @constant) - (#lua-match? @constant "^[A-Z]")) - -; Assume uppercase names in a match arm are constants. -((match_arm - pattern: (match_pattern - (identifier) @constant)) - (#lua-match? @constant "^[A-Z]")) - -((match_arm - pattern: (match_pattern - (scoped_identifier - name: (identifier) @constant))) - (#lua-match? @constant "^[A-Z]")) - -((identifier) @constant.builtin - (#any-of? @constant.builtin "Some" "None" "Ok" "Err")) - -; Macro definitions -"$" @function.macro - -(metavariable) @function.macro - -(macro_definition - "macro_rules!" @function.macro) - -; Attribute macros -(attribute_item - (attribute - (identifier) @function.macro)) - -(inner_attribute_item - (attribute - (identifier) @function.macro)) - -(attribute - (scoped_identifier - (identifier) @function.macro .)) - -; Derive macros (assume all arguments are types) -; (attribute -; (identifier) @_name -; arguments: (attribute (attribute (identifier) @type)) -; (#eq? @_name "derive")) -; Function-like macros -(macro_invocation - macro: (identifier) @function.macro) - -(macro_invocation - macro: (scoped_identifier - (identifier) @function.macro .)) - -; Literals -(boolean_literal) @boolean - -(integer_literal) @number - -(float_literal) @number.float - -[ - (raw_string_literal) - (string_literal) -] @string - -(escape_sequence) @string.escape - -(char_literal) @character - -; Keywords -[ - "use" - "mod" -] @keyword.import - -(use_as_clause - "as" @keyword.import) - -[ - "default" - "impl" - "let" - "move" - "unsafe" - "where" -] @keyword - -[ - "enum" - "struct" - "union" - "trait" - "type" -] @keyword.type - -[ - "async" - "await" - "gen" -] @keyword.coroutine - -"try" @keyword.exception - -[ - "ref" - "pub" - "raw" - (mutable_specifier) - "const" - "static" - "dyn" - "extern" -] @keyword.modifier - -(lifetime - "'" @keyword.modifier) - -(lifetime - (identifier) @attribute) - -(lifetime - (identifier) @attribute.builtin - (#any-of? @attribute.builtin "static" "_")) - -"fn" @keyword.function - -[ - "return" - "yield" -] @keyword.return - -(type_cast_expression - "as" @keyword.operator) - -(qualified_type - "as" @keyword.operator) - -(use_list - (self) @module) - -(scoped_use_list - (self) @module) - -(scoped_identifier - [ - (crate) - (super) - (self) - ] @module) - -(visibility_modifier - [ - (crate) - (super) - (self) - ] @module) - -[ - "if" - "else" - "match" -] @keyword.conditional - -[ - "break" - "continue" - "in" - "loop" - "while" -] @keyword.repeat - -"for" @keyword - -(for_expression - "for" @keyword.repeat) - -; Operators -[ - "!" - "!=" - "%" - "%=" - "&" - "&&" - "&=" - "*" - "*=" - "+" - "+=" - "-" - "-=" - ".." - "..=" - "..." - "/" - "/=" - "<" - "<<" - "<<=" - "<=" - "=" - "==" - ">" - ">=" - ">>" - ">>=" - "?" - "@" - "^" - "^=" - "|" - "|=" - "||" -] @operator - -(use_wildcard - "*" @character.special) - -(remaining_field_pattern - ".." @character.special) - -(range_pattern - [ - ".." - "..=" - "..." - ] @character.special) - -; Punctuation -[ - "(" - ")" - "[" - "]" - "{" - "}" -] @punctuation.bracket - -(closure_parameters - "|" @punctuation.bracket) - -(type_arguments - [ - "<" - ">" - ] @punctuation.bracket) - -(type_parameters - [ - "<" - ">" - ] @punctuation.bracket) - -(bracketed_type - [ - "<" - ">" - ] @punctuation.bracket) - -(for_lifetimes - [ - "<" - ">" - ] @punctuation.bracket) - -[ - "," - "." - ":" - "::" - ";" - "->" - "=>" -] @punctuation.delimiter - -(attribute_item - "#" @punctuation.special) - -(inner_attribute_item - [ - "!" - "#" - ] @punctuation.special) - -(macro_invocation - "!" @function.macro) - -(never_type - "!" @type.builtin) - -(macro_invocation - macro: (identifier) @_identifier @keyword.exception - "!" @keyword.exception - (#eq? @_identifier "panic")) - -(macro_invocation - macro: (identifier) @_identifier @keyword.exception - "!" @keyword.exception - (#contains? @_identifier "assert")) - -(macro_invocation - macro: (identifier) @_identifier @keyword.debug - "!" @keyword.debug - (#eq? @_identifier "dbg")) - -; Comments -[ - (line_comment) - (block_comment) - (outer_doc_comment_marker) - (inner_doc_comment_marker) -] @comment @spell - -(line_comment - (doc_comment)) @comment.documentation - -(block_comment - (doc_comment)) @comment.documentation - -(call_expression - function: (scoped_identifier - path: (identifier) @_regex - (#any-of? @_regex "Regex" "ByteRegexBuilder") - name: (identifier) @_new - (#eq? @_new "new")) - arguments: (arguments - (raw_string_literal - (string_content) @string.regexp))) - -(call_expression - function: (scoped_identifier - path: (scoped_identifier - (identifier) @_regex - (#any-of? @_regex "Regex" "ByteRegexBuilder") .) - name: (identifier) @_new - (#eq? @_new "new")) - arguments: (arguments - (raw_string_literal - (string_content) @string.regexp))) - -(call_expression - function: (scoped_identifier - path: (identifier) @_regex - (#any-of? @_regex "RegexSet" "RegexSetBuilder") - name: (identifier) @_new - (#eq? @_new "new")) - arguments: (arguments - (array_expression - (raw_string_literal - (string_content) @string.regexp)))) - -(call_expression - function: (scoped_identifier - path: (scoped_identifier - (identifier) @_regex - (#any-of? @_regex "RegexSet" "RegexSetBuilder") .) - name: (identifier) @_new - (#eq? @_new "new")) - arguments: (arguments - (array_expression - (raw_string_literal - (string_content) @string.regexp)))) diff --git a/queries/rust/indents.scm b/queries/rust/indents.scm deleted file mode 100644 index 9fe337d5c..000000000 --- a/queries/rust/indents.scm +++ /dev/null @@ -1,132 +0,0 @@ -[ - (mod_item) - (struct_item) - (enum_item) - (impl_item) - (struct_expression) - (struct_pattern) - (tuple_struct_pattern) - (tuple_expression) - (tuple_type) - (tuple_pattern) - (match_block) - (call_expression) - (assignment_expression) - (arguments) - (block) - (where_clause) - (use_list) - (array_expression) - (ordered_field_declaration_list) - (field_declaration_list) - (enum_variant_list) - (parameters) - (token_tree) - (token_repetition) - (macro_definition) -] @indent.begin - -(trait_item - body: (_) @indent.begin) - -(string_literal - (escape_sequence)) @indent.begin - -; Typing in "(" inside macro definitions breaks the tree entirely -; Making macro_definition becoming errors -; Offset this by adding back one indent for start of macro rules -(ERROR - . - "macro_rules!" - [ - "(" - "{" - "[" - ] @indent.begin - (#set! indent.immediate) - (#set! indent.start_at_same_line)) - -(macro_definition - [ - ")" - "}" - "]" - ] @indent.end) - -(trait_item - body: (_) @indent.begin) - -(string_literal - (escape_sequence)) @indent.begin - -(block - "}" @indent.end) - -(enum_item - body: (enum_variant_list - "}" @indent.end)) - -(impl_item - body: (declaration_list - "}" @indent.end)) - -(match_expression - body: (match_block - "}" @indent.end)) - -(mod_item - body: (declaration_list - "}" @indent.end)) - -(struct_item - body: (field_declaration_list - "}" @indent.end)) - -(struct_expression - body: (field_initializer_list - "}" @indent.end)) - -(struct_pattern - "}" @indent.end) - -(tuple_struct_pattern - ")" @indent.end) -; Typing in "(" inside macro definitions breaks the tree entirely -; Making macro_definition becoming errors -; Offset this by adding back one indent for start of macro rules -(ERROR - . - "macro_rules!" - "(" @indent.begin - (#set! indent.immediate) - (#set! indent.start_at_same_line)) - -(tuple_type - ")" @indent.end) - -(tuple_pattern - ")" @indent.end) - -(trait_item - body: (declaration_list - "}" @indent.end)) - -(impl_item - (where_clause) @indent.dedent) - -[ - "where" - ")" - "]" - "}" -] @indent.branch - -(impl_item - (declaration_list) @indent.branch) - -[ - (line_comment) - (string_literal) -] @indent.ignore - -(raw_string_literal) @indent.auto diff --git a/queries/rust/injections.scm b/queries/rust/injections.scm deleted file mode 100644 index 7bffd1fc9..000000000 --- a/queries/rust/injections.scm +++ /dev/null @@ -1,89 +0,0 @@ -(macro_invocation - macro: [ - (scoped_identifier - name: (_) @_macro_name) - (identifier) @_macro_name - ] - (token_tree) @injection.content - (#not-any-of? @_macro_name "slint" "html" "json") - (#set! injection.language "rust") - (#set! injection.include-children)) - -(macro_invocation - macro: [ - (scoped_identifier - name: (_) @injection.language) - (identifier) @injection.language - ] - (token_tree) @injection.content - (#any-of? @injection.language "slint" "html" "json") - (#offset! @injection.content 0 1 0 -1) - (#set! injection.include-children)) - -(macro_definition - (macro_rule - left: (token_tree_pattern) @injection.content - (#set! injection.language "rust"))) - -(macro_definition - (macro_rule - right: (token_tree) @injection.content - (#set! injection.language "rust"))) - -([ - (line_comment) - (block_comment) -] @injection.content - (#set! injection.language "comment")) - -(call_expression - function: (scoped_identifier - path: (identifier) @_regex - (#any-of? @_regex "Regex" "RegexBuilder") - name: (identifier) @_new - (#eq? @_new "new")) - arguments: (arguments - (raw_string_literal - (string_content) @injection.content)) - (#set! injection.language "regex")) - -(call_expression - function: (scoped_identifier - path: (scoped_identifier - (identifier) @_regex - (#any-of? @_regex "Regex" "RegexBuilder") .) - name: (identifier) @_new - (#eq? @_new "new")) - arguments: (arguments - (raw_string_literal - (string_content) @injection.content)) - (#set! injection.language "regex")) - -(call_expression - function: (scoped_identifier - path: (identifier) @_regex - (#any-of? @_regex "RegexSet" "RegexSetBuilder") - name: (identifier) @_new - (#eq? @_new "new")) - arguments: (arguments - (array_expression - (raw_string_literal - (string_content) @injection.content))) - (#set! injection.language "regex")) - -(call_expression - function: (scoped_identifier - path: (scoped_identifier - (identifier) @_regex - (#any-of? @_regex "RegexSet" "RegexSetBuilder") .) - name: (identifier) @_new - (#eq? @_new "new")) - arguments: (arguments - (array_expression - (raw_string_literal - (string_content) @injection.content))) - (#set! injection.language "regex")) - -((block_comment) @injection.content - (#match? @injection.content "/\\*!([a-zA-Z]+:)?re2c") - (#set! injection.language "re2c")) diff --git a/queries/rust/locals.scm b/queries/rust/locals.scm deleted file mode 100644 index 718d5f24a..000000000 --- a/queries/rust/locals.scm +++ /dev/null @@ -1,98 +0,0 @@ -; Imports -(extern_crate_declaration - name: (identifier) @local.definition.import) - -(use_declaration - argument: (scoped_identifier - name: (identifier) @local.definition.import)) - -(use_as_clause - alias: (identifier) @local.definition.import) - -(use_list - (identifier) @local.definition.import) ; use std::process::{Child, Command, Stdio}; - -; Functions -(function_item - name: (identifier) @local.definition.function) - -(function_item - name: (identifier) @local.definition.method - parameters: (parameters - (self_parameter))) - -; Variables -(parameter - pattern: (identifier) @local.definition.var) - -(let_declaration - pattern: (identifier) @local.definition.var) - -(const_item - name: (identifier) @local.definition.var) - -(tuple_pattern - (identifier) @local.definition.var) - -(let_condition - pattern: (_ - (identifier) @local.definition.var)) - -(tuple_struct_pattern - (identifier) @local.definition.var) - -(closure_parameters - (identifier) @local.definition.var) - -(self_parameter - (self) @local.definition.var) - -(for_expression - pattern: (identifier) @local.definition.var) - -; Types -(struct_item - name: (type_identifier) @local.definition.type) - -(enum_item - name: (type_identifier) @local.definition.type) - -; Fields -(field_declaration - name: (field_identifier) @local.definition.field) - -(enum_variant - name: (identifier) @local.definition.field) - -; References -(identifier) @local.reference - -((type_identifier) @local.reference - (#set! reference.kind "type")) - -((field_identifier) @local.reference - (#set! reference.kind "field")) - -; Macros -(macro_definition - name: (identifier) @local.definition.macro) - -; Module -(mod_item - name: (identifier) @local.definition.namespace) - -; Scopes -[ - (block) - (function_item) - (closure_expression) - (while_expression) - (for_expression) - (loop_expression) - (if_expression) - (match_expression) - (match_arm) - (struct_item) - (enum_item) - (impl_item) -] @local.scope |
