""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Vim ftdetect file " " Language: JSX (JavaScript) " Maintainer: Max Wang " """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" " Whether the .jsx extension is required. if !exists('g:jsx_ext_required') let g:jsx_ext_required = 1 endif " Whether the @jsx pragma is required. if !exists('g:jsx_pragma_required') let g:jsx_pragma_required = 0 endif let s:jsx_pragma_pattern = '\%^\_s*\/\*\*\%(\_.\%(\*\/\)\@!\)*@jsx\_.\{-}\*\/' " Whether to set the JSX filetype on *.js files. fu! EnableJSX() if g:jsx_pragma_required && !exists('b:jsx_ext_found') " Look for the @jsx pragma. It must be included in a docblock comment " before anything else in the file (except whitespace). let b:jsx_pragma_found = search(s:jsx_pragma_pattern, 'npw') endif if g:jsx_pragma_required && !b:jsx_pragma_found | return 0 | endif if g:jsx_ext_required && !exists('b:jsx_ext_found') | return 0 | endif return 1 endfu autocmd BufNewFile,BufRead *.jsx let b:jsx_ext_found = 1 autocmd BufNewFile,BufRead *.jsx set filetype=javascript.jsx autocmd BufNewFile,BufRead *.js \ if EnableJSX() | set filetype=javascript.jsx | endif