Skip to content

Commit 5083b63

Browse files
committed
Use less code. Leave room for deeper levels.
0 parents  commit 5083b63

File tree

2 files changed

+81
-0
lines changed

2 files changed

+81
-0
lines changed

autoload/rainbow_parentheses.vim

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
"==============================================================================
2+
" Description: Rainbow colors for parentheses, based on rainbow_parenthsis.vim
3+
" by Martin Krischik and others.
4+
" 2011-10-12: Use less code. Leave room for deeper levels.
5+
"==============================================================================
6+
7+
let s:max = 16
8+
9+
func! rainbow_parentheses#activate()
10+
hi default level1c ctermfg=brown guifg=OrangeRed1
11+
hi default level2c ctermfg=Darkblue guifg=LightGoldenRod1
12+
hi default level3c ctermfg=darkgray guifg=DeepSkyBlue1
13+
hi default level4c ctermfg=darkgreen guifg=HotPink1
14+
hi default level5c ctermfg=darkcyan guifg=chartreuse1
15+
hi default level6c ctermfg=darkred guifg=OrangeRed1
16+
hi default level7c ctermfg=darkmagenta guifg=LightGoldenRod1
17+
hi default level8c ctermfg=brown guifg=DeepSkyBlue1
18+
hi default level9c ctermfg=gray guifg=HotPink1
19+
hi default level10c ctermfg=black guifg=chartreuse1
20+
hi default level11c ctermfg=darkmagenta guifg=OrangeRed1
21+
hi default level12c ctermfg=Darkblue guifg=LightGoldenRod1
22+
hi default level13c ctermfg=darkgreen guifg=DeepSkyBlue1
23+
hi default level14c ctermfg=darkcyan guifg=HotPink1
24+
hi default level15c ctermfg=darkred guifg=chartreuse1
25+
hi default level16c ctermfg=red guifg=Yellow
26+
let s:active = 1
27+
endfunc
28+
29+
func! rainbow_parentheses#clear()
30+
for each in range(s:max)
31+
exe 'hi clear level'.each.'c'
32+
endfor
33+
let s:active = 0
34+
endfunc
35+
36+
func! rainbow_parentheses#toggle()
37+
if !exists('s:active')
38+
cal rainbow_parentheses#load('(',')')
39+
endif
40+
if s:active != 0
41+
cal rainbow_parentheses#clear()
42+
else
43+
cal rainbow_parentheses#activate()
44+
endif
45+
endfunc
46+
47+
func! s:cluster()
48+
let levels = ''
49+
for each in range(1, s:max)
50+
let levels .= ',level'.each
51+
endfor
52+
exe 'syn cluster rainbow_parentheses contains=@TOP'.levels.',NoInParens'
53+
endfunc
54+
cal s:cluster()
55+
56+
func! rainbow_parentheses#load(br1, br2)
57+
let [level, grp, alllvls] = ['', '', []]
58+
let [br1, br2] = [escape(a:br1, '['), escape(a:br2, ']')]
59+
for each in range(1, s:max)
60+
cal add(alllvls, 'level'.each)
61+
endfor
62+
for each in range(1, s:max)
63+
let cmd = 'syn region %s matchgroup=%s start=/%s/ end=/%s/ contains=TOP,%s,NoInParens'
64+
exe printf(cmd, 'level'.each, 'level'.each.'c', br1, br2, join(alllvls, ','))
65+
cal remove(alllvls, 0)
66+
endfor
67+
let s:active = 0
68+
endfunc
69+
70+
" vim:ts=2:sw=2:sts=2

plugin/rainbow_parentheses.vim

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
"==============================================================================
2+
" Description: Rainbow colors for parentheses, based on rainbow_parenthsis.vim
3+
" by Martin Krischik and others.
4+
" 2011-10-12: Use less code. Leave room for deeper levels.
5+
"==============================================================================
6+
7+
com! RainbowParenthesesToggle cal rainbow_parentheses#toggle()
8+
com! RainbowParenthesesLoadSquare cal rainbow_parentheses#load('[',']')
9+
com! RainbowParenthesesLoadRound cal rainbow_parentheses#load('(',')')
10+
com! RainbowParenthesesLoadBraces cal rainbow_parentheses#load('{','}')
11+
com! RainbowParenthesesLoadChevrons cal rainbow_parentheses#load('<','>')

0 commit comments

Comments
 (0)