This is no longer needed as Emmet supports JSX - you just need to turn it all on. Did a quick tutorial: http://wesbos.com/emmet-react-jsx-sublime/
Thanks, @wesbos
- Using emmet in jsx files
- Emmet expands text when js autocomplete needed
- Using
classNameinstead ofclass
- Install plugin RegReplace
- Install plugin Chain Of Command
- Merge files from this gist to your
Packages/Userdirectory
.someClassa.someClass(list of tags look inDefault (OSX).sublime-keymap, now it'sa|div|span|p|button)div>p

Thanks @max-mykhailenko
I included below more html tags
[ { "keys": ["alt+b"], "command": "goto_definition" }, { "keys": ["f1"], "command": "dired", "args": { "immediate": true }}, { "keys": ["super+ç"], "command": "toggle_comment", "args": { "block": false } }, { "keys": ["super+shift+ç"], "command": "toggle_comment", "args": { "block": true } }, { "keys": ["ctrl+,"], "command": "show_panel", "args": {"panel": "console", "toggle": true} }, { "keys": ["tab"], "command": "chain", "args": { "commands": [ ["expand_abbreviation_by_tab"], ["reg_replace", {"replacements": ["js_class"]}] ] }, "context": [ {"operand": "source.js", "operator": "equal", "match_all": true, "key": "selector"}, { "key": "preceding_text", "operator": "regex_contains", "operand": "(\\w+>\\w+|\\s(\\.?|a|abbr|acronym|address|applet|area|article|aside|audio|b|base|basefont|bdi|bdo|bgsound|big|blink|blockquote|body|br|button|canvas|caption|center|cite|code|col|colgroup|command|content|data|datalist|dd|del|details|dfn|dialog|dir|div|dl|dt|element|em|embed|fieldset|figcaption|figure|font|footer|form|frame|frameset|head|header|hgroup|hr|html|i|iframe|image|img|input|ins|isindex|kbd|keygen|label|legend|li|link|listing|main|map|mark|marquee|menu|menuitem|meta|meter|multicol|nav|nobr|noembed|noframes|noscript|object|ol|optgroup|option|output|p|param|picture|plaintext|pre|progress|q|rp|rt|rtc|ruby|s|samp|script|section|select|shadow|small|source|spacer|span|strike|strong|style|sub|summary|sup|table|tbody|td|template|textarea|tfoot|th|thead|time|title|tr|track|tt|u|ul|var|video|wbr|xmp)\\.\\w+)", "match_all": true }, {"key": "selection_empty", "operator": "equal", "operand": true, "match_all": true} ] } ]