(class_declaration name: (type_identifier) @name) @definition.class (protocol_declaration name: (type_identifier) @name) @definition.interface (class_declaration (class_body [ (function_declaration name: (simple_identifier) @name ) (subscript_declaration (parameter (simple_identifier) @name) ) (init_declaration "init" @name) (deinit_declaration "deinit" @name) ] ) ) @definition.method (protocol_declaration (protocol_body [ (protocol_function_declaration name: (simple_identifier) @name ) (subscript_declaration (parameter (simple_identifier) @name) ) (init_declaration "init" @name) ] ) ) @definition.method (class_declaration (class_body [ (property_declaration (pattern (simple_identifier) @name) ) ] ) ) @definition.property (property_declaration (pattern (simple_identifier) @name) ) @definition.property (function_declaration name: (simple_identifier) @name) @definition.function