summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitmodules3
m---------vim/pack/plugins/start/rainbow0
-rw-r--r--vim/plugin/rainbow_paren.vim100
-rw-r--r--vimrc29
4 files changed, 110 insertions, 22 deletions
diff --git a/.gitmodules b/.gitmodules
index 5b701c2..d29c40d 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -85,9 +85,6 @@
[submodule "vim/pack/local/start/commentary"]
path = vim/pack/plugins/start/commentary
url = git://github.com/tpope/vim-commentary
-[submodule "vim/pack/plugins/start/rainbow"]
- path = vim/pack/plugins/start/rainbow
- url = git://github.com/luochen1990/rainbow
[submodule "vim/pack/plugins/start/editorconfig"]
path = vim/pack/plugins/start/editorconfig
url = git://github.com/editorconfig/editorconfig-vim
diff --git a/vim/pack/plugins/start/rainbow b/vim/pack/plugins/start/rainbow
deleted file mode 160000
-Subproject 1c45e0f81324641b23d4c21edda4eabeacba031
diff --git a/vim/plugin/rainbow_paren.vim b/vim/plugin/rainbow_paren.vim
new file mode 100644
index 0000000..9889983
--- /dev/null
+++ b/vim/plugin/rainbow_paren.vim
@@ -0,0 +1,100 @@
+" this script by Shawn M Moore aka Sartak <sartak at gmail.com>
+" also by Michael R Geddes aka frogonwheels <vimmer at frog.wheelycreek.net>
+" originally by anonymous
+
+" this in the public domain
+" last updated 25 Mar 07
+
+" this does nothing unless you,
+" let g:rainbow = 1
+
+" and set which kinds of character pairs you want to rainbow
+" let g:rainbow_paren = 1 " ()
+" let g:rainbow_brace = 1 " {}
+" let g:rainbow_bracket = 1 " []
+" let g:rainbow_angle = 1 " <>
+
+" if you want the different types to nest, such that the braces in ({}) are
+" colored the same as the internal parens of (()), then
+" let g:rainbow_nested = 1
+
+" you probably also want to use something like
+" autocmd BufWinEnter * runtime plugin/rainbow_parens.vim
+
+if exists("g:rainbow") && g:rainbow != 0
+ if &ft == 'perl'
+ " wow, this is a huge huge hack, but indentation is broken without it
+ " see $VIMRUNTIME/indent/perl.vim:125-162
+ let s:basename = 'perlSubFoldRainbowLevel'
+ else
+ let s:basename = 'level'
+ endif
+ exe 'hi '.s:basename.'1c ctermfg=darkcyan guifg=cyan'
+ exe 'hi '.s:basename.'2c ctermfg=darkgreen guifg=green'
+ exe 'hi '.s:basename.'3c ctermfg=darkyellow guifg=yellow'
+ exe 'hi '.s:basename.'4c ctermfg=darkblue guifg=blue'
+ exe 'hi '.s:basename.'5c ctermfg=darkmagenta guifg=magenta'
+ " this color is never nested, it only appears on the outermost layer
+ exe 'hi '.s:basename.'6c ctermfg=darkred guifg=red'
+
+ " helper function
+ func s:DoSyn(cur, top, left, right, uniq)
+ let uniq = a:uniq
+ if exists("g:rainbow_nested") && g:rainbow_nested != 0
+ let uniq = ""
+ endif
+
+ let cmd = 'syn region '.s:basename.uniq.a:cur.' transparent fold matchgroup='.s:basename.a:cur.'c start=/'.a:left.'/ end=/'.a:right.'/ contains=TOP'
+
+ let i = a:cur
+
+ if i == 1
+ let i = a:top
+ endif
+
+ while i <= a:top
+ let cmd = cmd . ',' . s:basename . uniq . i
+ let i = i + 1
+ endwhile
+ exe cmd
+ endfunc
+
+ func s:DoSyntaxes(count)
+ let i = 1
+
+ while i <= a:count
+ " if you define new pairs, make sure to take into account that the
+ " delimiter is currently / and that it uses regex, so you need to escape
+ " regex metachars (like what is done for brackets)
+
+ if exists("g:rainbow_paren") && g:rainbow_paren != 0
+ " ocaml uses (* *) for comments; these shouldn't be highlighted
+ if &filetype == "ocaml"
+ call s:DoSyn(i, a:count, "(\\*\\@!", "\\*\\@<!)", "a")
+ else
+ call s:DoSyn(i, a:count, "(", ")", "a")
+ endif
+ endif
+
+ if exists("g:rainbow_brace") && g:rainbow_brace != 0
+ call s:DoSyn(i, a:count, "{", "}", "b")
+ endif
+
+ if exists("g:rainbow_bracket") && g:rainbow_bracket != 0
+ call s:DoSyn(i, a:count, "\\[", "\\]", "c")
+ endif
+
+ if exists("g:rainbow_angle") && g:rainbow_angle != 0
+ call s:DoSyn(i, a:count, "<", ">", "d")
+ endif
+
+ let i = i + 1
+ endwhile
+ endfun
+
+ call s:DoSyntaxes(6) " 6 is the number of colors we have
+
+ delfun s:DoSyn
+ delfun s:DoSyntaxes
+endif
+
diff --git a/vimrc b/vimrc
index 4f9c315..2d68fb9 100644
--- a/vimrc
+++ b/vimrc
@@ -132,25 +132,9 @@ endfunction
autocmd vimrc VimEnter * call <SID>configure_neosnippet_tab_mappings()
" }}}
" rainbow {{{
-let g:rainbow_active = 1
-let g:rainbow_conf = {
-\ 'ctermfgs': [
-\ 'darkred',
-\ 'darkmagenta',
-\ 'darkblue',
-\ 'darkyellow',
-\ 'darkgreen',
-\ 'darkcyan',
-\ ],
-\ 'guitermfgs': [
-\ 'red',
-\ 'magenta',
-\ 'blue',
-\ 'yellow',
-\ 'green',
-\ 'cyan',
-\ ],
-\}
+let g:rainbow = 1
+let g:rainbow_paren = 1
+let g:rainbow_brace = 1
" }}}
" startify {{{
let g:startify_list_order = ['dir', 'bookmarks', 'commands']
@@ -174,5 +158,12 @@ let g:Textobj_defs = [
\['\|', 'Textobj_paired', '\|'],
\]
" }}}
+" Load plugins that don't use vim's format {{{
+" just loading this directly from the plugin directory fails because language
+" syntax files override the highlighting
+" using BufWinEnter because that is run after modelines are run (so it catches
+" modelines which update highlighting)
+autocmd vimrc BufWinEnter,FileType * runtime plugin/rainbow_paren.vim
+" }}}
" }}}
" vim: fdm=marker