Skip to content

rainbow parentheses improved, shorter code, no level limit, smooth and fast, powerful configuration.

Notifications You must be signed in to change notification settings

otommod/rainbow

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 

Repository files navigation

Rainbow Parentheses Improved

help you read complex code by showing diff level of parentheses in diff color !!

As everyone knows, the most complex codes were composed of a mass of different kinds of parentheses(typically: lisp). This plugin will help you read these codes by showing different levels of parentheses in different colors. you can also find this plugin in www.vim.org.

lisp

lisp

html

html

What is improved ?

  • no limit of parentheses levels.
  • separately edit guifgs and ctermfgs (the colors used for highlighting)
  • now you can design your own parentheses such as 'begin' and 'end'.
  • you can also configure anything seprately for different type of files.
  • now you can even decide to let some operators (like + - * / , ==) hilighted with the parentheses together.
  • json style configuration used, more understandable and readable, easier for advanced configuration.
  • the code is shorter and easier to be read now.
  • smoother and faster.
  • the chinese document is added.

Referenced:

Install:

via Vundle:

Plugin 'luochen1990/rainbow'
let g:rainbow_active = 1 "0 if you want to enable it later via :RainbowToggle

Manually:

  • first, put rainbow.vim(this file) to dir ~/.vim/plugin or vimfiles/plugin

  • second, add the follow sentences to your .vimrc or _vimrc :

     let g:rainbow_active = 1 "0 if you want to enable it later via :RainbowToggle
  • third, restart your vim and enjoy coding.

Configure:

There is an example for advanced configuration(which i'm using), add it to your vimrc and edit it as you wish(just keep the format).

	let g:rainbow_conf = {
	\	'guifgs': ['royalblue3', 'darkorange3', 'seagreen3', 'firebrick'],
	\	'ctermfgs': ['lightblue', 'lightyellow', 'lightcyan', 'lightmagenta'],
	\	'operators': '_,_',
	\	'parentheses': ['start=/(/ end=/)/ fold', 'start=/\[/ end=/\]/ fold', 'start=/{/ end=/}/ fold'],
	\	'separately': {
	\		'*': {},
	\		'tex': {
	\			'parentheses': ['start=/(/ end=/)/', 'start=/\[/ end=/\]/'],
	\		},
	\		'lisp': {
	\			'guifgs': ['royalblue3', 'darkorange3', 'seagreen3', 'firebrick', 'darkorchid3'],
	\		},
	\		'vim': {
	\			'parentheses': ['start=/(/ end=/)/', 'start=/\[/ end=/\]/', 'start=/{/ end=/}/ fold', 'start=/(/ end=/)/ containedin=vimFuncBody', 'start=/\[/ end=/\]/ containedin=vimFuncBody', 'start=/{/ end=/}/ fold containedin=vimFuncBody'],
	\		},
	\		'html': {
	\			'parentheses': ['start=/\v\<((area|base|br|col|embed|hr|img|input|keygen|link|menuitem|meta|param|source|track|wbr)[ >])@!\z([-_:a-zA-Z0-9]+)(\s+[-_:a-zA-Z0-9]+(\=("[^"]*"|'."'".'[^'."'".']*'."'".'|[^ '."'".'"><=`]*))?)*\>/ end=#</\z1># fold'],
	\		},
	\		'css': 0,
	\	}
	\}
  • 'guifgs': colors for gui interface, will be used in order.
  • 'ctermfgs': colors for terms
  • 'operators': describe the operators you want to highlight(read the vim help :syn-pattern)
  • 'parentheses': describe what will be processed as parentheses, a pair of parentheses was described by two re pattern
  • 'separately': configure for specific filetypes(decided by &ft), key * for filetypes without separate configuration, value 0 means disable rainbow only for this type of files
  • keep a field empty to use the default setting.

User Command:

  • :RainbowToggle --you can use it to toggle this plugin.

Rate this script if you like it, and i'll appreciate it and improve this plugin for you because of your support ! just goto this page and choose Life Changing and click rate

About

rainbow parentheses improved, shorter code, no level limit, smooth and fast, powerful configuration.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Vim Script 100.0%