summaryrefslogtreecommitdiffstats
path: root/after
diff options
context:
space:
mode:
Diffstat (limited to 'after')
-rw-r--r--after/ftplugin/coffee.vim5
-rw-r--r--after/jsx-config.vim66
-rw-r--r--after/syntax/coffee.vim27
3 files changed, 98 insertions, 0 deletions
diff --git a/after/ftplugin/coffee.vim b/after/ftplugin/coffee.vim
new file mode 100644
index 00000000..104948d1
--- /dev/null
+++ b/after/ftplugin/coffee.vim
@@ -0,0 +1,5 @@
+if exists("loaded_matchit")
+ let b:match_ignorecase = 0
+ let b:match_words = '(:),\[:\],{:},<:>,' .
+ \ '<\@<=\([^/][^ \t>]*\)[^>]*\%(>\|$\):<\@<=/\1>'
+endif
diff --git a/after/jsx-config.vim b/after/jsx-config.vim
index 5270a518..d617bb40 100644
--- a/after/jsx-config.vim
+++ b/after/jsx-config.vim
@@ -64,3 +64,69 @@ if !g:jsx_pragma_required | finish | endif
" anything else in the file (except whitespace).
let s:jsx_pragma_pattern = '\%^\_s*\/\*\*\%(\_.\%(\*\/\)\@!\)*@jsx\_.\{-}\*\/'
let b:jsx_pragma_found = search(s:jsx_pragma_pattern, 'npw')
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Vimscript file
+"
+" Set up a bunch of configuration variables.
+"
+" Also check (if desired) whether or not the @jsx pragma is correctly included
+" in '%'. Set the result in b:jsx_pragma_found.
+"
+" Language: JSX (JavaScript)
+" Maintainer: Max Wang <mxawng@gmail.com>
+"
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+" Only check once.
+if exists('b:jsx_pragma_found')
+ finish
+endif
+
+" Whether the .jsx extension is required to enable JSX syntax/indent.
+if !exists('g:jsx_ext_required')
+ let g:jsx_ext_required = 1
+endif
+
+" Whether the @jsx pragma is required to enable JSX syntax/indent.
+if !exists('g:jsx_pragma_required')
+ let g:jsx_pragma_required = 0
+endif
+if !g:jsx_pragma_required | finish | endif
+
+" Look for the @jsx pragma. It must be included in a docblock comment before
+" anything else in the file (except whitespace).
+let s:jsx_pragma_pattern = '\%^\_s*\/\*\*\%(\_.\%(\*\/\)\@!\)*@jsx\_.\{-}\*\/'
+let b:jsx_pragma_found = search(s:jsx_pragma_pattern, 'npw')
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+" Vimscript file
+"
+" Set up a bunch of configuration variables.
+"
+" Also check (if desired) whether or not the @jsx pragma is correctly included
+" in '%'. Set the result in b:jsx_pragma_found.
+"
+" Language: JSX (JavaScript)
+" Maintainer: Max Wang <mxawng@gmail.com>
+"
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+
+" Only check once.
+if exists('b:jsx_pragma_found')
+ finish
+endif
+
+" Whether the .jsx extension is required to enable JSX syntax/indent.
+if !exists('g:jsx_ext_required')
+ let g:jsx_ext_required = 1
+endif
+
+" Whether the @jsx pragma is required to enable JSX syntax/indent.
+if !exists('g:jsx_pragma_required')
+ let g:jsx_pragma_required = 0
+endif
+if !g:jsx_pragma_required | finish | endif
+
+" Look for the @jsx pragma. It must be included in a docblock comment before
+" anything else in the file (except whitespace).
+let s:jsx_pragma_pattern = '\%^\_s*\/\*\*\%(\_.\%(\*\/\)\@!\)*@jsx\_.\{-}\*\/'
+let b:jsx_pragma_found = search(s:jsx_pragma_pattern, 'npw')
diff --git a/after/syntax/coffee.vim b/after/syntax/coffee.vim
new file mode 100644
index 00000000..64e0dc4f
--- /dev/null
+++ b/after/syntax/coffee.vim
@@ -0,0 +1,27 @@
+if exists('b:current_syntax')
+ let s:current_syntax=b:current_syntax
+ unlet b:current_syntax
+endif
+
+if exists('s:current_syntax')
+ let b:current_syntax=s:current_syntax
+endif
+
+syn match cjsxEntity contained "&[^; \t]*;" contains=cjsxEntityPunct
+syn match cjsxEntityPunct contained "[&.;]"
+
+syn match cjsxAttribProperty /[A-Za-z_][A-Za-z0-9_-]*/ contained
+syn region cjsxAttrib start=/\s[A-Za-z_][A-Za-z0-9_-]/hs=s+1 end=/=/ end=/\s[A-Za-z_]/me=e-2 end=+[/>]+me=e-1 contained contains=cjsxAttribProperty
+
+syn region cjsxBody start=+[^/]>+ms=s+2 start=/>/ms=s+1 end=+<\/+me=e-2 contained contains=cjsxElement,coffeeCurlies,cjsxEntity
+
+syn region cjsxElement start=/<@\=[A-Za-z_][A-Za-z0-9-_\.]*/ end=/\/>/ end=/<\/@\=[A-Za-z_][A-Za-z0-9-_\.]*>/ contains=cjsxOpenTag,cjsxBody,coffeeCurlies,coffeeString,cjsxAttrib,coffeeNumber,coffeeFloat
+
+syn cluster coffeeAll add=cjsxElement
+
+" The default highlighting.
+hi def link cjsxElement Function
+hi def link cjsxTagName Function
+hi def link cjsxEntity Statement
+hi def link cjsxEntityPunct Type
+hi def link cjsxAttribProperty Type