diff options
author | Jesse Luehrs <doy@tozt.net> | 2017-11-04 23:03:50 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2017-11-04 23:44:20 -0400 |
commit | 3fcb921077ae6aee0e25afef5d23c368c90ec3d3 (patch) | |
tree | 6c913475ec13c9888c0dc2abd94c20332ba7fa31 | |
parent | 7214071e57b7dd332ae4653af1fa292ac9676eb8 (diff) | |
download | conf-3fcb921077ae6aee0e25afef5d23c368c90ec3d3.tar.gz conf-3fcb921077ae6aee0e25afef5d23c368c90ec3d3.zip |
restore the old rainbow paren plugin
the new one is too complicated and breaks too many things
-rw-r--r-- | .gitmodules | 3 | ||||
m--------- | vim/pack/plugins/start/rainbow | 0 | ||||
-rw-r--r-- | vim/plugin/rainbow_paren.vim | 100 | ||||
-rw-r--r-- | vimrc | 29 |
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 + @@ -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 |