; functions
(function_signature_item) @function.around

(function_item
    body: (_
        "{"
        (_)* @function.inside
        "}" )) @function.around

; classes
(struct_item
    body: (_
        ["{" "("]?
        [(_) ","?]* @class.inside
        ["}" ")"]? )) @class.around

(enum_item
   body: (_
       "{"
       [(_) ","?]* @class.inside
       "}" )) @class.around

(union_item
    body: (_
        "{"
        [(_) ","?]* @class.inside
        "}" )) @class.around

(trait_item
    body: (_
        "{"
        [(_) ","?]* @class.inside
        "}" )) @class.around

(impl_item
    body: (_
        "{"
        [(_) ","?]* @class.inside
        "}" )) @class.around

(mod_item
    body: (_
        "{"
        [(_) ","?]* @class.inside
        "}" )) @class.around

; comments

(line_comment)+ @comment.around

(block_comment) @comment.around
