82 lines · 1.7 KB · Scheme
RawDownload
; Rust mod test(    (mod_item        name: (_) @run        (#eq? @run "tests")    )    (#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))