Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 41 additions & 38 deletions colors/detailed.vim
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down Expand Up @@ -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()
Expand Down Expand Up @@ -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