Original blog: https://jaxbot.me/articles/setting-up-vim-for-react-js-jsx-02-03-2015
React.js is gaining a lot of traction lately, but developing with its inline-XML-in-JS requires a few tweaks to Vim for a smooth experience.
Syntax highlighting
To get the syntax highlighting to look right, use mxw’s Vim JSX highlighting.
If you use Vundle, add:
Plugin 'mxw/vim-jsx'
Other plugin loaders, see the GitHub page.
If you use JSX syntax in .js files, which is now becoming standard, add:
let g:jsx_ext_required = 0 " Allow JSX in normal JS files
to your vimrc.
Syntax checking
If you use Syntastic, you’ll notice immediate errors wherever XML nodes appear, which is to be expected. Here’s a work around.
Update 3/30/15: I’ve added instructions on using ESLint instead of the old wrapper package.
Install eslint, babel-eslint (for ES6 support), and eslint-plugin-react:
npm install -g eslint
npm install -g babel-eslint
npm install -g eslint-plugin-react
Create a config like this in your project’s .eslintrc
, or do so globally by placing it in ~/.eslintrc
:
{
"parser": "babel-eslint",
"env": {
"browser": true,
"node": true
},
"settings": {
"ecmascript": 6,
"jsx": true
},
"plugins": [
"react"
],
"rules": {
"strict": 0,
"quotes": 0,
"no-unused-vars": 0,
"camelcase": 0,
"no-underscore-dangle": 0
}
}
Finally, configure Syntastic to use ESLint:
let g:syntastic_javascript_checkers = ['eslint']
You should be good to go, and JSX with ES6 features will syntax check correctly! See this issue for more info.