diff --git a/colors/detailed.vim b/colors/detailed.vim index de8e85c..32d707c 100644 --- a/colors/detailed.vim +++ b/colors/detailed.vim @@ -64,7 +64,6 @@ let ruby_operators = 1 " If you don't have this, rails.vim will zap the matchers when it resets " syntax for its own additions: -au Syntax * call s:fatpacked_rainbow_parens() au Syntax * call s:detailed_syntax_addtions() au Syntax ruby call s:ruby_syntax_and_highlights() @@ -717,9 +716,50 @@ fun! s:vim_syntax_and_highlights() endfun fun! s:javascript_syntax_and_highlights() + syn clear jsFuncArgs + syn clear jsFuncCall + syn clear jsObjectKey + syn match jsPropertyAccess '\.[$_[:alnum:]]\+' contains=jsPrototype,jsProbablyAClass + syn match jsFuncCall '\.\?\([$_[:alnum:]]\+\)(\@=' contains=jsPrototype,jsProbablyAClass + syn match jsProbablyAClass "\<[A-Z][_[:alnum:]]\{-}\>" contains=NONE + syn match jsFunctionKey '\<[a-zA-Z_$][0-9a-zA-Z_$]*\>\(\s*:\s*function\s*\)\@=' + syn match jsObjectKey '\<[a-zA-Z_$][0-9a-zA-Z_$]*\>\(\s*:\)\@=' contains=jsFunctionKey + syn keyword jsFunction function + syn keyword jsPrototype prototype hasOwnProperty + syn region jsFuncArgs start='\(function\s*[$_[:alnum:]]\{-}(\)\@<=[$_a-zA-Z]' end='[$_[:alnum:]])\@='lc=1 contains=jsProbablyAClass, jsUndefined, jsNull, jsNamedFunction + + syn match jsNamedFunction '\(function\s\)\@<=[$_[:alnum:]]\{-}\ze(' + hi link javascriptFunction detailedDefine hi link javascriptIdentifier Type hi link javascriptRailsFunction detailedInstanceVariable + hi link jsFunction detailedDefine + hi link jsFunctionKey detailedFunction + hi link jsNamedFunction detailedFunction + hi link jsFuncCall detailedMethodBlock + hi link jsConditional Conditional + hi link jsFunction detailedDefine + hi link jsThis detailedPseudoVariable + hi link jsStorageClass detailedInstanceVariable + hi link jsOperator detailedOperator + hi link jsStringS detailedString + hi link jsStringD detailedInterpolatedString + hi link jsBooleanTrue detailedBoolean + hi link jsBooleanFalse detailedBoolean + hi link jsObjectKey detailedSymbol + hi link jsFuncName detailedInitialize + hi link jsReturn detailedControl + hi link jsFuncArgs detailedBlockParameter + hi link jsProbablyAClass detailedConstant + hi link jsGlobalObjects Type + hi link jsPrototype detailedPseudoVariable + hi link jsNoise Comment + hi link jsPropertyAccess detailedRepeatExpression + hi link jsLocal detailedMethodBlock +endfun + +fun! JavascriptRefresh() + call s:javascript_syntax_and_highlights() endfun fun! s:detailed_syntax_addtions() @@ -863,43 +903,6 @@ fun! s:ruby_syntax_and_highlights() endfun " }}} -" Rainbow-Parens Improved {{{ -" Inlined from v2.3 of http://www.vim.org/scripts/script.php?script_id=4176 -" 1. to remove the external dep, 2. to work around vim-rails resetting it. -" Thanks! -fun! s:fatpacked_rainbow_parens() - let guifgs = exists('g:rainbow_guifgs')? g:rainbow_guifgs : [ - \ 'DarkOrchid3', 'RoyalBlue3', 'SeaGreen3', - \ 'DarkOrange3', 'FireBrick', - \ ] - - " From Pharo Smalltalk: - " Black, Green, Purple, Maroon, LightGreen, Orange, Red, Blue - let ctermfgs = exists('g:rainbow_ctermfgs')? g:rainbow_ctermfgs : [ - \ '241', '22', '56', '124', '72', '166', '126', '38', ] - - let max = has('gui_running')? len(guifgs) : len(ctermfgs) - - let cmd = 'syn region %s matchgroup=%s start=/%s/ end=/%s/ containedin=%s contains=%s' - let str = 'TOP' - for each in range(1, max) - let str .= ',lv'.each - endfor - for [left , right] in [['(',')'],['\[','\]'],['{','}']] - for each in range(1, max - 1) - exe printf(cmd, 'lv'.each, 'lv'.each.'c', left, right, 'lv'.(each+1) , str) - endfor - exe printf(cmd, 'lv'.max, 'lv'.max.'c', left, right, 'lv1' , str) - endfor - - for id in range(1 , max) - let ctermfg = ctermfgs[(max - id) % len(ctermfgs)] - let guifg = guifgs[(max - id) % len(guifgs)] - exe 'hi default lv'.id.'c ctermfg='.ctermfg.' guifg='.guifg - endfor -endfun -" }}} - let &cpo = s:save_cpo " vim:foldmethod=marker