Question: I had been previously using [Allan Hortle's JSX package](https://github.com/allanhortle/JSX) until I ran into an issue with how it handled syntax highlighting. I then noticed that there is an official package, [sublime-react](https://github.com/reactjs/sublime-react).

With Allan Hortle's package, he included a snippet in the `Preferences > Key Bindings – User` for enabling Emmet functionality that looks like this:

```
{
    "keys": ["tab"],
    "command": "expand_abbreviation_by_tab", 
    "context": [
        {
            "operand": "source.js.jsx", 
            "operator": "equal", 
            "match_all": true, 
            "key": "selector"
        }
    ]
}

```

This snippet doesn't appear to work with the official sublime-react package. It seems to be something to modify with the key bindings but an initial perusal of the Sublime documentation yielded no light on the subject. Help?

Answer: 
In 2021 it's not necessary to configure anything as Emmet has support for JSX files by default.

Obviously you need to install the [JSX language definition](https://packagecontrol.io/packages/JSX) from package control after installing Emmet.

Now `TAB` will work but only when the HTML tag is prefixed with a `<`. For example `<div`. To change this behavior open the Emmet settings and change this setting to `false`:

```
"jsx_prefix": false

```

To open the Emmet settings either use the File menu as show in the image below, or open the command palette (CMD+Shift+P on macOS) and write "Emmet settings".

[![enter image description here](https://i.stack.imgur.com/JIjJV.jpg)](https://i.stack.imgur.com/JIjJV.jpg)
simply use `ctrl+e` (`cmd+e` on mac ) instead of tab to get emmet to work inside your jsx.
for example if I expand (using `ctrl+e`)

```
render(){
        return(
            .modal>.btn.btn-success{Click Me}   
        )
    }

```

then I get 

```
render(){
        return(
            <div className="modal">
                    <div className="btn btn-success">Click Me</div>
                </div>  
        )
    }

```