1f5209870e
subrepo: subdir: "dotfiles/.vim/plugged/vim-jsx" merged: "8879e0d9" upstream: origin: "https://github.com/mxw/vim-jsx.git" branch: "master" commit: "8879e0d9" git-subrepo: version: "0.4.3" origin: "???" commit: "???"
37 lines
1.2 KiB
VimL
37 lines
1.2 KiB
VimL
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
" Vim ftdetect file
|
|
"
|
|
" Language: JSX (JavaScript)
|
|
" Maintainer: Max Wang <mxawng@gmail.com>
|
|
"
|
|
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
|
|
|
|
" Whether the .jsx extension is required.
|
|
if !exists('g:jsx_ext_required')
|
|
let g:jsx_ext_required = 0
|
|
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! <SID>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 <SID>EnableJSX() | set filetype=javascript.jsx | endif
|