; Rust mod test ( (attribute_item (attribute ( (identifier) @_attribute) arguments: ( (token_tree (identifier) @_test) (#eq? @_test "test") ) ) (#eq? @_attribute "cfg") ) . (mod_item name: (_) @run ) (#set! tag rust-mod-test) ) ; Rust test ( ( (attribute_item (attribute [((identifier) @_attribute) (scoped_identifier (identifier) @_attribute) ]) (#match? @_attribute "test") ) @_start . (attribute_item) * . [(line_comment) (block_comment)] * . (function_item name: (_) @run @_test_name body: _ ) @_end ) (#set! tag rust-test) ) ; Rust doc test ( ( (line_comment) * (line_comment doc: (_) @_comment_content ) @_start @run (#match? @_comment_content "```") . (line_comment) * . (line_comment doc: (_) @_end_comment_content ) @_end_code_block (#match? @_end_comment_content "```") . (line_comment) * (attribute_item) * . [(function_item name: (_) @_doc_test_name body: _ ) (function_signature_item name: (_) @_doc_test_name ) (struct_item name: (_) @_doc_test_name ) (enum_item name: (_) @_doc_test_name body: _ ) ( (attribute_item) ? (macro_definition name: (_) @_doc_test_name) ) (mod_item name: (_) @_doc_test_name )] @_end ) (#set! tag rust-doc-test) ) ; Rust main function ( ( (function_item name: (_) @run body: _ ) @_rust_main_function_end (#eq? @run "main") ) (#set! tag rust-main) )