(jsx_element open_tag: (jsx_opening_element ["<" ">"] @tag.delimiter)) (jsx_element close_tag: (jsx_closing_element [""] @tag.delimiter)) (jsx_self_closing_element ["<" "/>"] @tag.delimiter) (jsx_attribute (property_identifier) @tag.attribute) (jsx_opening_element name: (identifier) @tag) (jsx_closing_element name: (identifier) @tag) (jsx_self_closing_element name: (identifier) @tag) (jsx_opening_element ((identifier) @constructor (#lua-match? @constructor "^[A-Z]"))) ; Handle the dot operator effectively - (jsx_opening_element ((member_expression (identifier) @tag (property_identifier) @constructor))) (jsx_closing_element ((identifier) @constructor (#lua-match? @constructor "^[A-Z]"))) ; Handle the dot operator effectively - (jsx_closing_element ((member_expression (identifier) @tag (property_identifier) @constructor))) (jsx_self_closing_element ((identifier) @constructor (#lua-match? @constructor "^[A-Z]"))) ; Handle the dot operator effectively - (jsx_self_closing_element ((member_expression (identifier) @tag (property_identifier) @constructor))) (jsx_text) @none