From 3bf7cc5629c093de26f98833ab5ca8e4f7fa4e15 Mon Sep 17 00:00:00 2001 From: liushouda Date: Wed, 29 Jul 2015 16:31:44 +0800 Subject: [PATCH] indent guide --- my_configs.vim | 12 +- .../vim-indent-guides/.gitignore | 1 + .../vim-indent-guides/README.markdown | 71 ++ .../autoload/color_helper.vim | 879 ++++++++++++++++++ .../autoload/indent_guides.vim | 284 ++++++ .../vim-indent-guides/doc/indent_guides.txt | 339 +++++++ .../plugin/indent_guides.vim | 86 ++ .../test-files/test-ts2sw0et.txt | 47 + .../test-files/test-ts2sw2et.txt | 47 + .../test-files/test-ts2sw2noet.txt | 47 + .../test-files/test-ts2sw4noet.txt | 24 + .../test-files/test-ts4sw4et.txt | 47 + .../test-files/test-ts4sw4noet.txt | 47 + .../test-files/test-ts8sw2noet.txt | 24 + .../test-files/test-ts8sw8et.txt | 47 + .../test-files/test-ts8sw8noet.txt | 47 + 16 files changed, 2046 insertions(+), 3 deletions(-) create mode 100644 sources_non_forked/vim-indent-guides/.gitignore create mode 100644 sources_non_forked/vim-indent-guides/README.markdown create mode 100644 sources_non_forked/vim-indent-guides/autoload/color_helper.vim create mode 100644 sources_non_forked/vim-indent-guides/autoload/indent_guides.vim create mode 100644 sources_non_forked/vim-indent-guides/doc/indent_guides.txt create mode 100644 sources_non_forked/vim-indent-guides/plugin/indent_guides.vim create mode 100644 sources_non_forked/vim-indent-guides/test-files/test-ts2sw0et.txt create mode 100644 sources_non_forked/vim-indent-guides/test-files/test-ts2sw2et.txt create mode 100644 sources_non_forked/vim-indent-guides/test-files/test-ts2sw2noet.txt create mode 100644 sources_non_forked/vim-indent-guides/test-files/test-ts2sw4noet.txt create mode 100644 sources_non_forked/vim-indent-guides/test-files/test-ts4sw4et.txt create mode 100644 sources_non_forked/vim-indent-guides/test-files/test-ts4sw4noet.txt create mode 100644 sources_non_forked/vim-indent-guides/test-files/test-ts8sw2noet.txt create mode 100644 sources_non_forked/vim-indent-guides/test-files/test-ts8sw8et.txt create mode 100644 sources_non_forked/vim-indent-guides/test-files/test-ts8sw8noet.txt diff --git a/my_configs.vim b/my_configs.vim index 4bc5b44e..7451cd4e 100644 --- a/my_configs.vim +++ b/my_configs.vim @@ -6,15 +6,21 @@ set mouse= nnoremap :set invpaste paste? imap :set invpaste paste? set pastetoggle= - "let Tlist_Use_Split_Window = 1 "sudo apt-get install ncurses-term "export TERM=xterm-256color(.bashrc) -let g:molokai_original = 1 "let g:rehash256 = 1 :set nu -colorscheme molokai "colorscheme monokai +colorscheme molokai +let g:molokai_original = 1 + +"vertical indent, use ig to activatee +let g:indent_guides_start_level = 2 +let g:indent_guides_guide_size=1 +let g:indent_guides_auto_colors = 0 +hi IndentGuidesOdd guibg=red ctermbg=darkgrey +hi IndentGuidesEven guibg=green ctermbg=darkgrey inoremap {} {o}O map 1 :tabnext 1 map 2 :tabnext 2 diff --git a/sources_non_forked/vim-indent-guides/.gitignore b/sources_non_forked/vim-indent-guides/.gitignore new file mode 100644 index 00000000..926ccaaf --- /dev/null +++ b/sources_non_forked/vim-indent-guides/.gitignore @@ -0,0 +1 @@ +doc/tags diff --git a/sources_non_forked/vim-indent-guides/README.markdown b/sources_non_forked/vim-indent-guides/README.markdown new file mode 100644 index 00000000..18aa6f92 --- /dev/null +++ b/sources_non_forked/vim-indent-guides/README.markdown @@ -0,0 +1,71 @@ +# Indent Guides +Indent Guides is a plugin for visually displaying indent levels in Vim. + + + +## Features: +* Can detect both tab and space indent styles. +* Automatically inspects your colorscheme and picks appropriate colors (gVim only). +* Will highlight indent levels with alternating colors. +* Full support for gVim and basic support for Terminal Vim. +* Seems to work on Windows gVim 7.3 (haven't done any extensive tests though). +* Customizable size for indent guides, eg. skinny guides (soft-tabs only). +* Customizable start indent level. +* **NEW:** Highlight support for files with a mixture of tab and space indent styles. + +## Requirements +* Vim 7.2+ + +## Installation +To install the plugin just copy `autoload`, `plugin`, `doc` directories into your `.vim` directory. + +Alternatively if you have [Pathogen](http://www.vim.org/scripts/script.php?script_id=2332) installed, just clone this repo into a subdirectory of your `.vim/bundle` directory like so: + + cd ~/.vim/bundle + git clone git://github.com/nathanaelkane/vim-indent-guides.git + +## Usage +The default mapping to toggle the plugin is `ig` + +### gVim +**This plugin should work with gVim out of the box, no configuration needed.** It will automatically inspect your colorscheme and pick appropriate colors. + +### Setting custom indent colors +Here's an example of how to define custom colors instead of using the ones the plugin automatically generates for you. Add this to your `.vimrc` file: + + let g:indent_guides_auto_colors = 0 + autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd guibg=red ctermbg=3 + autocmd VimEnter,Colorscheme * :hi IndentGuidesEven guibg=green ctermbg=4 + +Alternatively you can add the following lines to your colorscheme file. + + hi IndentGuidesOdd guibg=red ctermbg=3 + hi IndentGuidesEven guibg=green ctermbg=4 + +### Terminal Vim +At the moment Terminal Vim only has basic support. This means is that colors won't be automatically calculated based on your colorscheme. Instead, some preset colors are used depending on whether `background` is set to `dark` or `light`. + +When `set background=dark` is used, the following highlight colors will be defined: + + hi IndentGuidesOdd ctermbg=black + hi IndentGuidesEven ctermbg=darkgrey + +Alternatively, when `set background=light` is used, the following highlight colors will be defined: + + hi IndentGuidesOdd ctermbg=white + hi IndentGuidesEven ctermbg=lightgrey + +If for some reason it's incorrectly defining light highlight colors instead of dark ones or vice versa, the first thing you should check is that the `background` value is being set correctly for your colorscheme. Sometimes it's best to manually set the `background` value in your `.vimrc`, for example: + + colorscheme desert256 + set background=dark + +Alternatively you can manually setup the highlight colors yourself, see `:help indent_guides_auto_colors` for an example. + +## Help +`:help indent-guides` + +## Screenshots + + + diff --git a/sources_non_forked/vim-indent-guides/autoload/color_helper.vim b/sources_non_forked/vim-indent-guides/autoload/color_helper.vim new file mode 100644 index 00000000..54d18c00 --- /dev/null +++ b/sources_non_forked/vim-indent-guides/autoload/color_helper.vim @@ -0,0 +1,879 @@ +" Author: Nate Kane +" Homepage: http://github.com/nathanaelkane/vim-indent-guides + +" +" Return hex string equivalent to given decimal string or number. +" +" Example: color_helper#dec_to_hex(255, 2) +" Returns: 'FF' +" +" Example: color_helper#dec_to_hex(255, 5) +" Returns: '000FF' +" +function! color_helper#dec_to_hex(arg, padding) + return toupper(printf('%0' . a:padding . 'x', a:arg + 0)) +endfunction + +" +" Return number equivalent to given hex string ('0x' is optional). +" +" Example: color_helper#hex_to_dec('FF') +" Returns: 255 +" +" Example: color_helper#hex_to_dec('88') +" Returns: 136 +" +" Example: color_helper#hex_to_dec('00') +" Returns: 0 +" +function! color_helper#hex_to_dec(arg) + return (a:arg =~? '^0x') ? a:arg + 0 : ('0x'.a:arg) + 0 +endfunction + +" +" Converts a given hex color string into an rgb list (eg. [red, green, blue]). +" +" Example: color_helper#hex_color_to_rgb('#0088FF') +" Returns: [0, 136, 255] +" +function! color_helper#hex_color_to_rgb(hex_color) + let l:rgb = [] + + if a:hex_color =~ g:indent_guides_color_hex_pattern + let l:red = color_helper#hex_to_dec(strpart(a:hex_color, 1, 2)) + let l:green = color_helper#hex_to_dec(strpart(a:hex_color, 3, 2)) + let l:blue = color_helper#hex_to_dec(strpart(a:hex_color, 5, 2)) + let l:rgb = [l:red, l:green, l:blue] + end + + return l:rgb +endfunction + +" +" Converts a given rgb list (eg. [red, green, blue]) into a hex color string. +" +" Example: color_helper#rgb_color_to_hex([0, 136, 255]) +" Returns: '#0088FF' +" +function! color_helper#rgb_color_to_hex(rgb_color) + let l:hex_color = '#' + let l:hex_color .= color_helper#dec_to_hex(a:rgb_color[0], 2) " red + let l:hex_color .= color_helper#dec_to_hex(a:rgb_color[1], 2) " green + let l:hex_color .= color_helper#dec_to_hex(a:rgb_color[2], 2) " blue + + return l:hex_color +endfunction + +" +" Returns a ligtened color using the given color and the percent to lighten it +" by. +" +" Example: color_helper#hex_color_lighten('#000000', 0.10) +" Returns: '#191919' +" +function! color_helper#hex_color_lighten(color, percent) + let l:rgb = color_helper#hex_color_to_rgb(a:color) + let l:rgb_lightened = [] + + for i in l:rgb + call add(l:rgb_lightened, float2nr(i + ((255 - i) * a:percent))) + endfor + + return color_helper#rgb_color_to_hex(l:rgb_lightened) +endfunction + +" +" Returns a darkened color using the given color and the percent to darken it +" by. +" +" Example: color_helper#hex_color_darken('#FFFFFF', 0.10) +" Returns: '#E5E5E5' +" +function! color_helper#hex_color_darken(color, percent) + let l:rgb = color_helper#hex_color_to_rgb(a:color) + let l:rgb_darkened = [] + + for i in l:rgb + call add(l:rgb_darkened, float2nr(i * (1 - a:percent))) + endfor + + return color_helper#rgb_color_to_hex(l:rgb_darkened) +endfunction + +" +" Returns a hex color code for the given color name. +" +" Example: color_helper#color_name_to_hex('darkslategray') +" Returns: '#2F4F4F' +" +function! color_helper#color_name_to_hex(color_name) + let l:hex_code = '' + let l:color_name = tolower(a:color_name) + + let l:color_list = { + \ 'alice blue' : '#F0F8FF', + \ 'aliceblue' : '#F0F8FF', + \ 'antique white' : '#FAEBD7', + \ 'antiquewhite' : '#FAEBD7', + \ 'antiquewhite1' : '#FFEFDB', + \ 'antiquewhite2' : '#EEDFCC', + \ 'antiquewhite3' : '#CDC0B0', + \ 'antiquewhite4' : '#8B8378', + \ 'aquamarine' : '#7FFFD4', + \ 'aquamarine1' : '#7FFFD4', + \ 'aquamarine2' : '#76EEC6', + \ 'aquamarine3' : '#66CDAA', + \ 'aquamarine4' : '#458B74', + \ 'azure' : '#F0FFFF', + \ 'azure1' : '#F0FFFF', + \ 'azure2' : '#E0EEEE', + \ 'azure3' : '#C1CDCD', + \ 'azure4' : '#838B8B', + \ 'beige' : '#F5F5DC', + \ 'bisque' : '#FFE4C4', + \ 'bisque1' : '#FFE4C4', + \ 'bisque2' : '#EED5B7', + \ 'bisque3' : '#CDB79E', + \ 'bisque4' : '#8B7D6B', + \ 'black' : '#000000', + \ 'blanched almond' : '#FFEBCD', + \ 'blanchedalmond' : '#FFEBCD', + \ 'blue violet' : '#8A2BE2', + \ 'blue' : '#0000FF', + \ 'blue1' : '#0000FF', + \ 'blue2' : '#0000EE', + \ 'blue3' : '#0000CD', + \ 'blue4' : '#00008B', + \ 'blueviolet' : '#8A2BE2', + \ 'brown' : '#A52A2A', + \ 'brown1' : '#FF4040', + \ 'brown2' : '#EE3B3B', + \ 'brown3' : '#CD3333', + \ 'brown4' : '#8B2323', + \ 'burlywood' : '#DEB887', + \ 'burlywood1' : '#FFD39B', + \ 'burlywood2' : '#EEC591', + \ 'burlywood3' : '#CDAA7D', + \ 'burlywood4' : '#8B7355', + \ 'cadet blue' : '#5F9EA0', + \ 'cadetblue' : '#5F9EA0', + \ 'cadetblue1' : '#98F5FF', + \ 'cadetblue2' : '#8EE5EE', + \ 'cadetblue3' : '#7AC5CD', + \ 'cadetblue4' : '#53868B', + \ 'chartreuse' : '#7FFF00', + \ 'chartreuse1' : '#7FFF00', + \ 'chartreuse2' : '#76EE00', + \ 'chartreuse3' : '#66CD00', + \ 'chartreuse4' : '#458B00', + \ 'chocolate' : '#D2691E', + \ 'chocolate1' : '#FF7F24', + \ 'chocolate2' : '#EE7621', + \ 'chocolate3' : '#CD661D', + \ 'chocolate4' : '#8B4513', + \ 'coral' : '#FF7F50', + \ 'coral1' : '#FF7256', + \ 'coral2' : '#EE6A50', + \ 'coral3' : '#CD5B45', + \ 'coral4' : '#8B3E2F', + \ 'cornflower blue' : '#6495ED', + \ 'cornflowerblue' : '#6495ED', + \ 'cornsilk' : '#FFF8DC', + \ 'cornsilk1' : '#FFF8DC', + \ 'cornsilk2' : '#EEE8CD', + \ 'cornsilk3' : '#CDC8B1', + \ 'cornsilk4' : '#8B8878', + \ 'cyan' : '#00FFFF', + \ 'cyan1' : '#00FFFF', + \ 'cyan2' : '#00EEEE', + \ 'cyan3' : '#00CDCD', + \ 'cyan4' : '#008B8B', + \ 'dark blue' : '#00008B', + \ 'dark cyan' : '#008B8B', + \ 'dark goldenrod' : '#B8860B', + \ 'dark gray' : '#A9A9A9', + \ 'dark green' : '#006400', + \ 'dark grey' : '#A9A9A9', + \ 'dark khaki' : '#BDB76B', + \ 'dark magenta' : '#8B008B', + \ 'dark olive green' : '#556B2F', + \ 'dark orange' : '#FF8C00', + \ 'dark orchid' : '#9932CC', + \ 'dark red' : '#8B0000', + \ 'dark salmon' : '#E9967A', + \ 'dark sea green' : '#8FBC8F', + \ 'dark slate blue' : '#483D8B', + \ 'dark slate gray' : '#2F4F4F', + \ 'dark slate grey' : '#2F4F4F', + \ 'dark turquoise' : '#00CED1', + \ 'dark violet' : '#9400D3', + \ 'dark yellow' : '#BBBB00', + \ 'darkblue' : '#00008B', + \ 'darkcyan' : '#008B8B', + \ 'darkgoldenrod' : '#B8860B', + \ 'darkgoldenrod1' : '#FFB90F', + \ 'darkgoldenrod2' : '#EEAD0E', + \ 'darkgoldenrod3' : '#CD950C', + \ 'darkgoldenrod4' : '#8B6508', + \ 'darkgray' : '#A9A9A9', + \ 'darkgreen' : '#006400', + \ 'darkgrey' : '#A9A9A9', + \ 'darkkhaki' : '#BDB76B', + \ 'darkmagenta' : '#8B008B', + \ 'darkolivegreen' : '#556B2F', + \ 'darkolivegreen1' : '#CAFF70', + \ 'darkolivegreen2' : '#BCEE68', + \ 'darkolivegreen3' : '#A2CD5A', + \ 'darkolivegreen4' : '#6E8B3D', + \ 'darkorange' : '#FF8C00', + \ 'darkorange1' : '#FF7F00', + \ 'darkorange2' : '#EE7600', + \ 'darkorange3' : '#CD6600', + \ 'darkorange4' : '#8B4500', + \ 'darkorchid' : '#9932CC', + \ 'darkorchid1' : '#BF3EFF', + \ 'darkorchid2' : '#B23AEE', + \ 'darkorchid3' : '#9A32CD', + \ 'darkorchid4' : '#68228B', + \ 'darkred' : '#8B0000', + \ 'darksalmon' : '#E9967A', + \ 'darkseagreen' : '#8FBC8F', + \ 'darkseagreen1' : '#C1FFC1', + \ 'darkseagreen2' : '#B4EEB4', + \ 'darkseagreen3' : '#9BCD9B', + \ 'darkseagreen4' : '#698B69', + \ 'darkslateblue' : '#483D8B', + \ 'darkslategray' : '#2F4F4F', + \ 'darkslategray1' : '#97FFFF', + \ 'darkslategray2' : '#8DEEEE', + \ 'darkslategray3' : '#79CDCD', + \ 'darkslategray4' : '#528B8B', + \ 'darkslategrey' : '#2F4F4F', + \ 'darkturquoise' : '#00CED1', + \ 'darkviolet' : '#9400D3', + \ 'darkyellow' : '#BBBB00', + \ 'deep pink' : '#FF1493', + \ 'deep sky blue' : '#00BFFF', + \ 'deeppink' : '#FF1493', + \ 'deeppink1' : '#FF1493', + \ 'deeppink2' : '#EE1289', + \ 'deeppink3' : '#CD1076', + \ 'deeppink4' : '#8B0A50', + \ 'deepskyblue' : '#00BFFF', + \ 'deepskyblue1' : '#00BFFF', + \ 'deepskyblue2' : '#00B2EE', + \ 'deepskyblue3' : '#009ACD', + \ 'deepskyblue4' : '#00688B', + \ 'dim gray' : '#696969', + \ 'dim grey' : '#696969', + \ 'dimgray' : '#696969', + \ 'dimgrey' : '#696969', + \ 'dodger blue' : '#1E90FF', + \ 'dodgerblue' : '#1E90FF', + \ 'dodgerblue1' : '#1E90FF', + \ 'dodgerblue2' : '#1C86EE', + \ 'dodgerblue3' : '#1874CD', + \ 'dodgerblue4' : '#104E8B', + \ 'firebrick' : '#B22222', + \ 'firebrick1' : '#FF3030', + \ 'firebrick2' : '#EE2C2C', + \ 'firebrick3' : '#CD2626', + \ 'firebrick4' : '#8B1A1A', + \ 'floral white' : '#FFFAF0', + \ 'floralwhite' : '#FFFAF0', + \ 'forest green' : '#228B22', + \ 'forestgreen' : '#228B22', + \ 'gainsboro' : '#DCDCDC', + \ 'ghost white' : '#F8F8FF', + \ 'ghostwhite' : '#F8F8FF', + \ 'gold' : '#FFD700', + \ 'gold1' : '#FFD700', + \ 'gold2' : '#EEC900', + \ 'gold3' : '#CDAD00', + \ 'gold4' : '#8B7500', + \ 'goldenrod' : '#DAA520', + \ 'goldenrod1' : '#FFC125', + \ 'goldenrod2' : '#EEB422', + \ 'goldenrod3' : '#CD9B1D', + \ 'goldenrod4' : '#8B6914', + \ 'gray' : '#BEBEBE', + \ 'gray0' : '#000000', + \ 'gray1' : '#030303', + \ 'gray10' : '#1A1A1A', + \ 'gray100' : '#FFFFFF', + \ 'gray11' : '#1C1C1C', + \ 'gray12' : '#1F1F1F', + \ 'gray13' : '#212121', + \ 'gray14' : '#242424', + \ 'gray15' : '#262626', + \ 'gray16' : '#292929', + \ 'gray17' : '#2B2B2B', + \ 'gray18' : '#2E2E2E', + \ 'gray19' : '#303030', + \ 'gray2' : '#050505', + \ 'gray20' : '#333333', + \ 'gray21' : '#363636', + \ 'gray22' : '#383838', + \ 'gray23' : '#3B3B3B', + \ 'gray24' : '#3D3D3D', + \ 'gray25' : '#404040', + \ 'gray26' : '#424242', + \ 'gray27' : '#454545', + \ 'gray28' : '#474747', + \ 'gray29' : '#4A4A4A', + \ 'gray3' : '#080808', + \ 'gray30' : '#4D4D4D', + \ 'gray31' : '#4F4F4F', + \ 'gray32' : '#525252', + \ 'gray33' : '#545454', + \ 'gray34' : '#575757', + \ 'gray35' : '#595959', + \ 'gray36' : '#5C5C5C', + \ 'gray37' : '#5E5E5E', + \ 'gray38' : '#616161', + \ 'gray39' : '#636363', + \ 'gray4' : '#0A0A0A', + \ 'gray40' : '#666666', + \ 'gray41' : '#696969', + \ 'gray42' : '#6B6B6B', + \ 'gray43' : '#6E6E6E', + \ 'gray44' : '#707070', + \ 'gray45' : '#737373', + \ 'gray46' : '#757575', + \ 'gray47' : '#787878', + \ 'gray48' : '#7A7A7A', + \ 'gray49' : '#7D7D7D', + \ 'gray5' : '#0D0D0D', + \ 'gray50' : '#7F7F7F', + \ 'gray51' : '#828282', + \ 'gray52' : '#858585', + \ 'gray53' : '#878787', + \ 'gray54' : '#8A8A8A', + \ 'gray55' : '#8C8C8C', + \ 'gray56' : '#8F8F8F', + \ 'gray57' : '#919191', + \ 'gray58' : '#949494', + \ 'gray59' : '#969696', + \ 'gray6' : '#0F0F0F', + \ 'gray60' : '#999999', + \ 'gray61' : '#9C9C9C', + \ 'gray62' : '#9E9E9E', + \ 'gray63' : '#A1A1A1', + \ 'gray64' : '#A3A3A3', + \ 'gray65' : '#A6A6A6', + \ 'gray66' : '#A8A8A8', + \ 'gray67' : '#ABABAB', + \ 'gray68' : '#ADADAD', + \ 'gray69' : '#B0B0B0', + \ 'gray7' : '#121212', + \ 'gray70' : '#B3B3B3', + \ 'gray71' : '#B5B5B5', + \ 'gray72' : '#B8B8B8', + \ 'gray73' : '#BABABA', + \ 'gray74' : '#BDBDBD', + \ 'gray75' : '#BFBFBF', + \ 'gray76' : '#C2C2C2', + \ 'gray77' : '#C4C4C4', + \ 'gray78' : '#C7C7C7', + \ 'gray79' : '#C9C9C9', + \ 'gray8' : '#141414', + \ 'gray80' : '#CCCCCC', + \ 'gray81' : '#CFCFCF', + \ 'gray82' : '#D1D1D1', + \ 'gray83' : '#D4D4D4', + \ 'gray84' : '#D6D6D6', + \ 'gray85' : '#D9D9D9', + \ 'gray86' : '#DBDBDB', + \ 'gray87' : '#DEDEDE', + \ 'gray88' : '#E0E0E0', + \ 'gray89' : '#E3E3E3', + \ 'gray9' : '#171717', + \ 'gray90' : '#E5E5E5', + \ 'gray91' : '#E8E8E8', + \ 'gray92' : '#EBEBEB', + \ 'gray93' : '#EDEDED', + \ 'gray94' : '#F0F0F0', + \ 'gray95' : '#F2F2F2', + \ 'gray96' : '#F5F5F5', + \ 'gray97' : '#F7F7F7', + \ 'gray98' : '#FAFAFA', + \ 'gray99' : '#FCFCFC', + \ 'green yellow' : '#ADFF2F', + \ 'green' : '#00FF00', + \ 'green1' : '#00FF00', + \ 'green2' : '#00EE00', + \ 'green3' : '#00CD00', + \ 'green4' : '#008B00', + \ 'greenyellow' : '#ADFF2F', + \ 'grey' : '#BEBEBE', + \ 'grey0' : '#000000', + \ 'grey1' : '#030303', + \ 'grey10' : '#1A1A1A', + \ 'grey100' : '#FFFFFF', + \ 'grey11' : '#1C1C1C', + \ 'grey12' : '#1F1F1F', + \ 'grey13' : '#212121', + \ 'grey14' : '#242424', + \ 'grey15' : '#262626', + \ 'grey16' : '#292929', + \ 'grey17' : '#2B2B2B', + \ 'grey18' : '#2E2E2E', + \ 'grey19' : '#303030', + \ 'grey2' : '#050505', + \ 'grey20' : '#333333', + \ 'grey21' : '#363636', + \ 'grey22' : '#383838', + \ 'grey23' : '#3B3B3B', + \ 'grey24' : '#3D3D3D', + \ 'grey25' : '#404040', + \ 'grey26' : '#424242', + \ 'grey27' : '#454545', + \ 'grey28' : '#474747', + \ 'grey29' : '#4A4A4A', + \ 'grey3' : '#080808', + \ 'grey30' : '#4D4D4D', + \ 'grey31' : '#4F4F4F', + \ 'grey32' : '#525252', + \ 'grey33' : '#545454', + \ 'grey34' : '#575757', + \ 'grey35' : '#595959', + \ 'grey36' : '#5C5C5C', + \ 'grey37' : '#5E5E5E', + \ 'grey38' : '#616161', + \ 'grey39' : '#636363', + \ 'grey4' : '#0A0A0A', + \ 'grey40' : '#666666', + \ 'grey41' : '#696969', + \ 'grey42' : '#6B6B6B', + \ 'grey43' : '#6E6E6E', + \ 'grey44' : '#707070', + \ 'grey45' : '#737373', + \ 'grey46' : '#757575', + \ 'grey47' : '#787878', + \ 'grey48' : '#7A7A7A', + \ 'grey49' : '#7D7D7D', + \ 'grey5' : '#0D0D0D', + \ 'grey50' : '#7F7F7F', + \ 'grey51' : '#828282', + \ 'grey52' : '#858585', + \ 'grey53' : '#878787', + \ 'grey54' : '#8A8A8A', + \ 'grey55' : '#8C8C8C', + \ 'grey56' : '#8F8F8F', + \ 'grey57' : '#919191', + \ 'grey58' : '#949494', + \ 'grey59' : '#969696', + \ 'grey6' : '#0F0F0F', + \ 'grey60' : '#999999', + \ 'grey61' : '#9C9C9C', + \ 'grey62' : '#9E9E9E', + \ 'grey63' : '#A1A1A1', + \ 'grey64' : '#A3A3A3', + \ 'grey65' : '#A6A6A6', + \ 'grey66' : '#A8A8A8', + \ 'grey67' : '#ABABAB', + \ 'grey68' : '#ADADAD', + \ 'grey69' : '#B0B0B0', + \ 'grey7' : '#121212', + \ 'grey70' : '#B3B3B3', + \ 'grey71' : '#B5B5B5', + \ 'grey72' : '#B8B8B8', + \ 'grey73' : '#BABABA', + \ 'grey74' : '#BDBDBD', + \ 'grey75' : '#BFBFBF', + \ 'grey76' : '#C2C2C2', + \ 'grey77' : '#C4C4C4', + \ 'grey78' : '#C7C7C7', + \ 'grey79' : '#C9C9C9', + \ 'grey8' : '#141414', + \ 'grey80' : '#CCCCCC', + \ 'grey81' : '#CFCFCF', + \ 'grey82' : '#D1D1D1', + \ 'grey83' : '#D4D4D4', + \ 'grey84' : '#D6D6D6', + \ 'grey85' : '#D9D9D9', + \ 'grey86' : '#DBDBDB', + \ 'grey87' : '#DEDEDE', + \ 'grey88' : '#E0E0E0', + \ 'grey89' : '#E3E3E3', + \ 'grey9' : '#171717', + \ 'grey90' : '#E5E5E5', + \ 'grey91' : '#E8E8E8', + \ 'grey92' : '#EBEBEB', + \ 'grey93' : '#EDEDED', + \ 'grey94' : '#F0F0F0', + \ 'grey95' : '#F2F2F2', + \ 'grey96' : '#F5F5F5', + \ 'grey97' : '#F7F7F7', + \ 'grey98' : '#FAFAFA', + \ 'grey99' : '#FCFCFC', + \ 'honeydew' : '#F0FFF0', + \ 'honeydew1' : '#F0FFF0', + \ 'honeydew2' : '#E0EEE0', + \ 'honeydew3' : '#C1CDC1', + \ 'honeydew4' : '#838B83', + \ 'hot pink' : '#FF69B4', + \ 'hotpink' : '#FF69B4', + \ 'hotpink1' : '#FF6EB4', + \ 'hotpink2' : '#EE6AA7', + \ 'hotpink3' : '#CD6090', + \ 'hotpink4' : '#8B3A62', + \ 'indian red' : '#CD5C5C', + \ 'indianred' : '#CD5C5C', + \ 'indianred1' : '#FF6A6A', + \ 'indianred2' : '#EE6363', + \ 'indianred3' : '#CD5555', + \ 'indianred4' : '#8B3A3A', + \ 'ivory' : '#FFFFF0', + \ 'ivory1' : '#FFFFF0', + \ 'ivory2' : '#EEEEE0', + \ 'ivory3' : '#CDCDC1', + \ 'ivory4' : '#8B8B83', + \ 'khaki' : '#F0E68C', + \ 'khaki1' : '#FFF68F', + \ 'khaki2' : '#EEE685', + \ 'khaki3' : '#CDC673', + \ 'khaki4' : '#8B864E', + \ 'lavender blush' : '#FFF0F5', + \ 'lavender' : '#E6E6FA', + \ 'lavenderblush' : '#FFF0F5', + \ 'lavenderblush1' : '#FFF0F5', + \ 'lavenderblush2' : '#EEE0E5', + \ 'lavenderblush3' : '#CDC1C5', + \ 'lavenderblush4' : '#8B8386', + \ 'lawn green' : '#7CFC00', + \ 'lawngreen' : '#7CFC00', + \ 'lemon chiffon' : '#FFFACD', + \ 'lemonchiffon' : '#FFFACD', + \ 'lemonchiffon1' : '#FFFACD', + \ 'lemonchiffon2' : '#EEE9BF', + \ 'lemonchiffon3' : '#CDC9A5', + \ 'lemonchiffon4' : '#8B8970', + \ 'light blue' : '#ADD8E6', + \ 'light coral' : '#F08080', + \ 'light cyan' : '#E0FFFF', + \ 'light goldenrod yellow' : '#FAFAD2', + \ 'light goldenrod' : '#EEDD82', + \ 'light gray' : '#D3D3D3', + \ 'light green' : '#90EE90', + \ 'light grey' : '#D3D3D3', + \ 'light magenta' : '#FFBBFF', + \ 'light pink' : '#FFB6C1', + \ 'light red' : '#FFBBBB', + \ 'light salmon' : '#FFA07A', + \ 'light sea green' : '#20B2AA', + \ 'light sky blue' : '#87CEFA', + \ 'light slate blue' : '#8470FF', + \ 'light slate gray' : '#778899', + \ 'light slate grey' : '#778899', + \ 'light steel blue' : '#B0C4DE', + \ 'light yellow' : '#FFFFE0', + \ 'lightblue' : '#ADD8E6', + \ 'lightblue1' : '#BFEFFF', + \ 'lightblue2' : '#B2DFEE', + \ 'lightblue3' : '#9AC0CD', + \ 'lightblue4' : '#68838B', + \ 'lightcoral' : '#F08080', + \ 'lightcyan' : '#E0FFFF', + \ 'lightcyan1' : '#E0FFFF', + \ 'lightcyan2' : '#D1EEEE', + \ 'lightcyan3' : '#B4CDCD', + \ 'lightcyan4' : '#7A8B8B', + \ 'lightgoldenrod' : '#EEDD82', + \ 'lightgoldenrod1' : '#FFEC8B', + \ 'lightgoldenrod2' : '#EEDC82', + \ 'lightgoldenrod3' : '#CDBE70', + \ 'lightgoldenrod4' : '#8B814C', + \ 'lightgoldenrodyellow' : '#FAFAD2', + \ 'lightgray' : '#D3D3D3', + \ 'lightgreen' : '#90EE90', + \ 'lightgrey' : '#D3D3D3', + \ 'lightmagenta' : '#FFBBFF', + \ 'lightpink' : '#FFB6C1', + \ 'lightpink1' : '#FFAEB9', + \ 'lightpink2' : '#EEA2AD', + \ 'lightpink3' : '#CD8C95', + \ 'lightpink4' : '#8B5F65', + \ 'lightred' : '#FFBBBB', + \ 'lightsalmon' : '#FFA07A', + \ 'lightsalmon1' : '#FFA07A', + \ 'lightsalmon2' : '#EE9572', + \ 'lightsalmon3' : '#CD8162', + \ 'lightsalmon4' : '#8B5742', + \ 'lightseagreen' : '#20B2AA', + \ 'lightskyblue' : '#87CEFA', + \ 'lightskyblue1' : '#B0E2FF', + \ 'lightskyblue2' : '#A4D3EE', + \ 'lightskyblue3' : '#8DB6CD', + \ 'lightskyblue4' : '#607B8B', + \ 'lightslateblue' : '#8470FF', + \ 'lightslategray' : '#778899', + \ 'lightslategrey' : '#778899', + \ 'lightsteelblue' : '#B0C4DE', + \ 'lightsteelblue1' : '#CAE1FF', + \ 'lightsteelblue2' : '#BCD2EE', + \ 'lightsteelblue3' : '#A2B5CD', + \ 'lightsteelblue4' : '#6E7B8B', + \ 'lightyellow' : '#FFFFE0', + \ 'lightyellow1' : '#FFFFE0', + \ 'lightyellow2' : '#EEEED1', + \ 'lightyellow3' : '#CDCDB4', + \ 'lightyellow4' : '#8B8B7A', + \ 'lime green' : '#32CD32', + \ 'limegreen' : '#32CD32', + \ 'linen' : '#FAF0E6', + \ 'magenta' : '#FF00FF', + \ 'magenta1' : '#FF00FF', + \ 'magenta2' : '#EE00EE', + \ 'magenta3' : '#CD00CD', + \ 'magenta4' : '#8B008B', + \ 'maroon' : '#B03060', + \ 'maroon1' : '#FF34B3', + \ 'maroon2' : '#EE30A7', + \ 'maroon3' : '#CD2990', + \ 'maroon4' : '#8B1C62', + \ 'medium aquamarine' : '#66CDAA', + \ 'medium blue' : '#0000CD', + \ 'medium orchid' : '#BA55D3', + \ 'medium purple' : '#9370DB', + \ 'medium sea green' : '#3CB371', + \ 'medium slate blue' : '#7B68EE', + \ 'medium spring green' : '#00FA9A', + \ 'medium turquoise' : '#48D1CC', + \ 'medium violet red' : '#C71585', + \ 'mediumaquamarine' : '#66CDAA', + \ 'mediumblue' : '#0000CD', + \ 'mediumorchid' : '#BA55D3', + \ 'mediumorchid1' : '#E066FF', + \ 'mediumorchid2' : '#D15FEE', + \ 'mediumorchid3' : '#B452CD', + \ 'mediumorchid4' : '#7A378B', + \ 'mediumpurple' : '#9370DB', + \ 'mediumpurple1' : '#AB82FF', + \ 'mediumpurple2' : '#9F79EE', + \ 'mediumpurple3' : '#8968CD', + \ 'mediumpurple4' : '#5D478B', + \ 'mediumseagreen' : '#3CB371', + \ 'mediumslateblue' : '#7B68EE', + \ 'mediumspringgreen' : '#00FA9A', + \ 'mediumturquoise' : '#48D1CC', + \ 'mediumvioletred' : '#C71585', + \ 'midnight blue' : '#191970', + \ 'midnightblue' : '#191970', + \ 'mint cream' : '#F5FFFA', + \ 'mintcream' : '#F5FFFA', + \ 'misty rose' : '#FFE4E1', + \ 'mistyrose' : '#FFE4E1', + \ 'mistyrose1' : '#FFE4E1', + \ 'mistyrose2' : '#EED5D2', + \ 'mistyrose3' : '#CDB7B5', + \ 'mistyrose4' : '#8B7D7B', + \ 'moccasin' : '#FFE4B5', + \ 'navajo white' : '#FFDEAD', + \ 'navajowhite' : '#FFDEAD', + \ 'navajowhite1' : '#FFDEAD', + \ 'navajowhite2' : '#EECFA1', + \ 'navajowhite3' : '#CDB38B', + \ 'navajowhite4' : '#8B795E', + \ 'navy blue' : '#000080', + \ 'navy' : '#000080', + \ 'navyblue' : '#000080', + \ 'old lace' : '#FDF5E6', + \ 'oldlace' : '#FDF5E6', + \ 'olive drab' : '#6B8E23', + \ 'olivedrab' : '#6B8E23', + \ 'olivedrab1' : '#C0FF3E', + \ 'olivedrab2' : '#B3EE3A', + \ 'olivedrab3' : '#9ACD32', + \ 'olivedrab4' : '#698B22', + \ 'orange red' : '#FF4500', + \ 'orange' : '#FFA500', + \ 'orange1' : '#FFA500', + \ 'orange2' : '#EE9A00', + \ 'orange3' : '#CD8500', + \ 'orange4' : '#8B5A00', + \ 'orangered' : '#FF4500', + \ 'orangered1' : '#FF4500', + \ 'orangered2' : '#EE4000', + \ 'orangered3' : '#CD3700', + \ 'orangered4' : '#8B2500', + \ 'orchid' : '#DA70D6', + \ 'orchid1' : '#FF83FA', + \ 'orchid2' : '#EE7AE9', + \ 'orchid3' : '#CD69C9', + \ 'orchid4' : '#8B4789', + \ 'pale goldenrod' : '#EEE8AA', + \ 'pale green' : '#98FB98', + \ 'pale turquoise' : '#AFEEEE', + \ 'pale violet red' : '#DB7093', + \ 'palegoldenrod' : '#EEE8AA', + \ 'palegreen' : '#98FB98', + \ 'palegreen1' : '#9AFF9A', + \ 'palegreen2' : '#90EE90', + \ 'palegreen3' : '#7CCD7C', + \ 'palegreen4' : '#548B54', + \ 'paleturquoise' : '#AFEEEE', + \ 'paleturquoise1' : '#BBFFFF', + \ 'paleturquoise2' : '#AEEEEE', + \ 'paleturquoise3' : '#96CDCD', + \ 'paleturquoise4' : '#668B8B', + \ 'palevioletred' : '#DB7093', + \ 'palevioletred1' : '#FF82AB', + \ 'palevioletred2' : '#EE799F', + \ 'palevioletred3' : '#CD6889', + \ 'palevioletred4' : '#8B475D', + \ 'papaya whip' : '#FFEFD5', + \ 'papayawhip' : '#FFEFD5', + \ 'peach puff' : '#FFDAB9', + \ 'peachpuff' : '#FFDAB9', + \ 'peachpuff1' : '#FFDAB9', + \ 'peachpuff2' : '#EECBAD', + \ 'peachpuff3' : '#CDAF95', + \ 'peachpuff4' : '#8B7765', + \ 'peru' : '#CD853F', + \ 'pink' : '#FFC0CB', + \ 'pink1' : '#FFB5C5', + \ 'pink2' : '#EEA9B8', + \ 'pink3' : '#CD919E', + \ 'pink4' : '#8B636C', + \ 'plum' : '#DDA0DD', + \ 'plum1' : '#FFBBFF', + \ 'plum2' : '#EEAEEE', + \ 'plum3' : '#CD96CD', + \ 'plum4' : '#8B668B', + \ 'powder blue' : '#B0E0E6', + \ 'powderblue' : '#B0E0E6', + \ 'purple' : '#A020F0', + \ 'purple1' : '#9B30FF', + \ 'purple2' : '#912CEE', + \ 'purple3' : '#7D26CD', + \ 'purple4' : '#551A8B', + \ 'red' : '#FF0000', + \ 'red1' : '#FF0000', + \ 'red2' : '#EE0000', + \ 'red3' : '#CD0000', + \ 'red4' : '#8B0000', + \ 'rosy brown' : '#BC8F8F', + \ 'rosybrown' : '#BC8F8F', + \ 'rosybrown1' : '#FFC1C1', + \ 'rosybrown2' : '#EEB4B4', + \ 'rosybrown3' : '#CD9B9B', + \ 'rosybrown4' : '#8B6969', + \ 'royal blue' : '#4169E1', + \ 'royalblue' : '#4169E1', + \ 'royalblue1' : '#4876FF', + \ 'royalblue2' : '#436EEE', + \ 'royalblue3' : '#3A5FCD', + \ 'royalblue4' : '#27408B', + \ 'saddle brown' : '#8B4513', + \ 'saddlebrown' : '#8B4513', + \ 'salmon' : '#FA8072', + \ 'salmon1' : '#FF8C69', + \ 'salmon2' : '#EE8262', + \ 'salmon3' : '#CD7054', + \ 'salmon4' : '#8B4C39', + \ 'sandy brown' : '#F4A460', + \ 'sandybrown' : '#F4A460', + \ 'sea green' : '#2E8B57', + \ 'seagreen' : '#2E8B57', + \ 'seagreen1' : '#54FF9F', + \ 'seagreen2' : '#4EEE94', + \ 'seagreen3' : '#43CD80', + \ 'seagreen4' : '#2E8B57', + \ 'seashell' : '#FFF5EE', + \ 'seashell1' : '#FFF5EE', + \ 'seashell2' : '#EEE5DE', + \ 'seashell3' : '#CDC5BF', + \ 'seashell4' : '#8B8682', + \ 'sienna' : '#A0522D', + \ 'sienna1' : '#FF8247', + \ 'sienna2' : '#EE7942', + \ 'sienna3' : '#CD6839', + \ 'sienna4' : '#8B4726', + \ 'sky blue' : '#87CEEB', + \ 'skyblue' : '#87CEEB', + \ 'skyblue1' : '#87CEFF', + \ 'skyblue2' : '#7EC0EE', + \ 'skyblue3' : '#6CA6CD', + \ 'skyblue4' : '#4A708B', + \ 'slate blue' : '#6A5ACD', + \ 'slate gray' : '#708090', + \ 'slate grey' : '#708090', + \ 'slateblue' : '#6A5ACD', + \ 'slateblue1' : '#836FFF', + \ 'slateblue2' : '#7A67EE', + \ 'slateblue3' : '#6959CD', + \ 'slateblue4' : '#473C8B', + \ 'slategray' : '#708090', + \ 'slategray1' : '#C6E2FF', + \ 'slategray2' : '#B9D3EE', + \ 'slategray3' : '#9FB6CD', + \ 'slategray4' : '#6C7B8B', + \ 'slategrey' : '#708090', + \ 'snow' : '#FFFAFA', + \ 'snow1' : '#FFFAFA', + \ 'snow2' : '#EEE9E9', + \ 'snow3' : '#CDC9C9', + \ 'snow4' : '#8B8989', + \ 'spring green' : '#00FF7F', + \ 'springgreen' : '#00FF7F', + \ 'springgreen1' : '#00FF7F', + \ 'springgreen2' : '#00EE76', + \ 'springgreen3' : '#00CD66', + \ 'springgreen4' : '#008B45', + \ 'steel blue' : '#4682B4', + \ 'steelblue' : '#4682B4', + \ 'steelblue1' : '#63B8FF', + \ 'steelblue2' : '#5CACEE', + \ 'steelblue3' : '#4F94CD', + \ 'steelblue4' : '#36648B', + \ 'tan' : '#D2B48C', + \ 'tan1' : '#FFA54F', + \ 'tan2' : '#EE9A49', + \ 'tan3' : '#CD853F', + \ 'tan4' : '#8B5A2B', + \ 'thistle' : '#D8BFD8', + \ 'thistle1' : '#FFE1FF', + \ 'thistle2' : '#EED2EE', + \ 'thistle3' : '#CDB5CD', + \ 'thistle4' : '#8B7B8B', + \ 'tomato' : '#FF6347', + \ 'tomato1' : '#FF6347', + \ 'tomato2' : '#EE5C42', + \ 'tomato3' : '#CD4F39', + \ 'tomato4' : '#8B3626', + \ 'turquoise' : '#40E0D0', + \ 'turquoise1' : '#00F5FF', + \ 'turquoise2' : '#00E5EE', + \ 'turquoise3' : '#00C5CD', + \ 'turquoise4' : '#00868B', + \ 'violet red' : '#D02090', + \ 'violet' : '#EE82EE', + \ 'violetred' : '#D02090', + \ 'violetred1' : '#FF3E96', + \ 'violetred2' : '#EE3A8C', + \ 'violetred3' : '#CD3278', + \ 'violetred4' : '#8B2252', + \ 'wheat' : '#F5DEB3', + \ 'wheat1' : '#FFE7BA', + \ 'wheat2' : '#EED8AE', + \ 'wheat3' : '#CDBA96', + \ 'wheat4' : '#8B7E66', + \ 'white smoke' : '#F5F5F5', + \ 'white' : '#FFFFFF', + \ 'whitesmoke' : '#F5F5F5', + \ 'yellow green' : '#9ACD32', + \ 'yellow' : '#FFFF00', + \ 'yellow1' : '#FFFF00', + \ 'yellow2' : '#EEEE00', + \ 'yellow3' : '#CDCD00', + \ 'yellow4' : '#8B8B00', + \ 'yellowgreen' : '#9ACD32', + \} + + if has_key(l:color_list, l:color_name) + let l:hex_code = l:color_list[l:color_name] + endif + + return l:hex_code +endfunction diff --git a/sources_non_forked/vim-indent-guides/autoload/indent_guides.vim b/sources_non_forked/vim-indent-guides/autoload/indent_guides.vim new file mode 100644 index 00000000..53d4ff9f --- /dev/null +++ b/sources_non_forked/vim-indent-guides/autoload/indent_guides.vim @@ -0,0 +1,284 @@ +" Author: Nate Kane +" Homepage: http://github.com/nathanaelkane/vim-indent-guides + +" +" Toggles the indent guides on and off. +" +function! indent_guides#toggle() + call indent_guides#init_matches() + + if empty(w:indent_guides_matches) + call indent_guides#enable() + else + call indent_guides#disable() + endif +endfunction + +" +" Called from autocmds, keeps indent guides enabled or disabled when entering +" other buffers and windows. +" +function! indent_guides#process_autocmds() + if g:indent_guides_autocmds_enabled + call indent_guides#enable() + else + call indent_guides#disable() + end +endfunction + +" +" Enables the indent guides for the current buffer and any other buffer upon +" entering it. +" +function! indent_guides#enable() + let g:indent_guides_autocmds_enabled = 1 + + if &diff || indent_guides#exclude_filetype() + call indent_guides#clear_matches() + return + end + + call indent_guides#init_script_vars() + call indent_guides#highlight_colors() + call indent_guides#clear_matches() + + " loop through each indent level and define a highlight pattern + " will automagically figure out whether to use tabs or spaces + for l:level in range(s:start_level, s:indent_levels) + let l:group = 'IndentGuides' . ((l:level % 2 == 0) ? 'Even' : 'Odd') + let l:column_start = (l:level - 1) * s:indent_size + 1 + let l:soft_pattern = indent_guides#indent_highlight_pattern(g:indent_guides_soft_pattern, l:column_start, s:guide_size) + let l:hard_pattern = indent_guides#indent_highlight_pattern('\t', l:column_start, s:indent_size) + + " define the higlight patterns and add to matches list + if g:indent_guides_space_guides + call add(w:indent_guides_matches, matchadd(l:group, l:soft_pattern)) + end + call add(w:indent_guides_matches, matchadd(l:group, l:hard_pattern)) + endfor +endfunction + +" +" Disables the indent guides for the current buffer and any other buffer upon +" entering it. +" +function! indent_guides#disable() + let g:indent_guides_autocmds_enabled = 0 + call indent_guides#clear_matches() +endfunction + +" +" Clear all highlight matches for the current window. +" +function! indent_guides#clear_matches() + call indent_guides#init_matches() + if !empty(w:indent_guides_matches) + let l:index = 0 + for l:match_id in w:indent_guides_matches + try + call matchdelete(l:match_id) + catch /E803:/ + " Do nothing + endtry + call remove(w:indent_guides_matches, l:index) + let l:index += l:index + endfor + endif +endfunction + +" +" Automagically calculates and defines the indent highlight colors. +" +function! indent_guides#highlight_colors() + if s:auto_colors + if has('gui_running') + call indent_guides#gui_highlight_colors() + else + call indent_guides#basic_highlight_colors() + endif + endif +endfunction + +" +" Defines some basic indent highlight colors that work for Terminal Vim and +" gVim when colors can't be automatically calculated. +" +function! indent_guides#basic_highlight_colors() + let l:cterm_colors = (&g:background == 'dark') ? ['darkgrey', 'black'] : ['lightgrey', 'white'] + let l:gui_colors = (&g:background == 'dark') ? ['grey15', 'grey30'] : ['grey70', 'grey85'] + + exe 'hi IndentGuidesEven guibg=' . l:gui_colors[0] . ' guifg=' . l:gui_colors[1] . ' ctermbg=' . l:cterm_colors[0] . ' ctermfg=' . l:cterm_colors[1] + exe 'hi IndentGuidesOdd guibg=' . l:gui_colors[1] . ' guifg=' . l:gui_colors[0] . ' ctermbg=' . l:cterm_colors[1] . ' ctermfg=' . l:cterm_colors[0] +endfunction + +" +" Automagically calculates and defines the indent highlight colors for gui +" vim. +" +function! indent_guides#gui_highlight_colors() + let l:hi_normal_guibg = '' + + " capture the backgroud color from the normal highlight + if s:hi_normal =~ s:color_hex_bg_pat + " hex color code is being used, eg. '#FFFFFF' + let l:hi_normal_guibg = matchstr(s:hi_normal, s:color_hex_bg_pat) + + elseif s:hi_normal =~ s:color_name_bg_pat + " color name is being used, eg. 'white' + let l:color_name = matchstr(s:hi_normal, s:color_name_bg_pat) + let l:hi_normal_guibg = color_helper#color_name_to_hex(l:color_name) + + else + " background color could not be detected, default to basic colors + call indent_guides#basic_highlight_colors() + endif + + if l:hi_normal_guibg =~ s:color_hex_pat + " calculate the highlight background colors + let l:hi_odd_bg = indent_guides#lighten_or_darken_color(l:hi_normal_guibg) + let l:hi_even_bg = indent_guides#lighten_or_darken_color(l:hi_odd_bg) + + " define the new highlights + exe 'hi IndentGuidesOdd guibg=' . l:hi_odd_bg . ' guifg=' . l:hi_even_bg + exe 'hi IndentGuidesEven guibg=' . l:hi_even_bg . ' guifg=' . l:hi_odd_bg + end +endfunction + +" +" Takes a color and darkens or lightens it depending on whether a dark or light +" colorscheme is being used. +" +function! indent_guides#lighten_or_darken_color(color) + let l:new_color = '' + + if (&g:background == 'dark') + let l:new_color = color_helper#hex_color_lighten(a:color, s:change_percent) + else + let l:new_color = color_helper#hex_color_darken (a:color, s:change_percent) + endif + + return l:new_color +endfunction + +" +" Define default highlights. +" +function! indent_guides#define_default_highlights() + hi default clear IndentGuidesOdd + hi default clear IndentGuidesEven +endfunction + +" +" Init the w:indent_guides_matches variable. +" +function! indent_guides#init_matches() + let w:indent_guides_matches = exists('w:indent_guides_matches') ? w:indent_guides_matches : [] +endfunction + +" +" We need to initialize these vars every time a buffer is entered while the +" plugin is enabled. +" +function! indent_guides#init_script_vars() + if &l:shiftwidth > 0 && &l:expandtab + let s:indent_size = &l:shiftwidth + else + let s:indent_size = &l:tabstop + endif + let s:guide_size = indent_guides#calculate_guide_size() + let s:hi_normal = indent_guides#capture_highlight('Normal') + + " remove 'font=' from the s:hi_normal string (only seems to happen on Vim startup in Windows) + let s:hi_normal = substitute(s:hi_normal, ' font=[A-Za-z0-9:]\+', "", "") + + " shortcuts to the global variables - this makes the code easier to read + let s:debug = g:indent_guides_debug + let s:indent_levels = g:indent_guides_indent_levels + let s:auto_colors = g:indent_guides_auto_colors + let s:color_hex_pat = g:indent_guides_color_hex_pattern + let s:color_hex_bg_pat = g:indent_guides_color_hex_guibg_pattern + let s:color_name_bg_pat = g:indent_guides_color_name_guibg_pattern + let s:start_level = g:indent_guides_start_level + + " str2float not available in vim versions <= 7.1 + if has('float') + let s:change_percent = g:indent_guides_color_change_percent / str2float('100.0') + else + let s:change_percent = g:indent_guides_color_change_percent / 100.0 + endif + + if s:debug + echo 's:indent_size = ' . s:indent_size + echo 's:guide_size = ' . s:guide_size + echo 's:hi_normal = ' . s:hi_normal + echo 's:indent_levels = ' . s:indent_levels + echo 's:auto_colors = ' . s:auto_colors + echo 's:change_percent = ' . string(s:change_percent) + echo 's:color_hex_pat = ' . s:color_hex_pat + echo 's:color_hex_bg_pat = ' . s:color_hex_bg_pat + echo 's:color_name_bg_pat = ' . s:color_name_bg_pat + echo 's:start_level = ' . s:start_level + endif +endfunction + +" +" Calculate the indent guide size. Ensures the guide size is less than or +" equal to the actual indent size, otherwise some weird things can occur. +" +" NOTE: Currently, this only works when soft-tabs are being used. +" +function! indent_guides#calculate_guide_size() + let l:guide_size = g:indent_guides_guide_size + + if l:guide_size == 0 || l:guide_size > s:indent_size + let l:guide_size = s:indent_size + endif + + return l:guide_size +endfunction + +" +" Captures and returns the output of highlight group definitions. +" +" Example: indent_guides#capture_highlight('normal') +" Returns: 'Normal xxx guifg=#323232 guibg=#ffffff' +" +function! indent_guides#capture_highlight(group_name) + redir => l:output + exe "silent hi " . a:group_name + redir END + + let l:output = substitute(l:output, "\n", "", "") + return l:output +endfunction + +" +" Returns a regex pattern for highlighting an indent level. +" +" Example: indent_guides#indent_highlight_pattern(' ', 1, 4) +" Returns: /^ *\%1v\zs *\%5v\ze/ +" +" Example: indent_guides#indent_highlight_pattern('\s', 5, 2) +" Returns: /^\s*\%5v\zs\s*\%7v\ze/ +" +" Example: indent_guides#indent_highlight_pattern('\t', 9, 2) +" Returns: /^\t*\%9v\zs\t*\%11v\ze/ +" +function! indent_guides#indent_highlight_pattern(indent_pattern, column_start, indent_size) + let l:pattern = '^' . a:indent_pattern . '*\%' . a:column_start . 'v\zs' + let l:pattern .= a:indent_pattern . '*\%' . (a:column_start + a:indent_size) . 'v' + let l:pattern .= '\ze' + return l:pattern +endfunction + +" +" Detect if any of the buffer filetypes should be excluded. +" +function! indent_guides#exclude_filetype() + for ft in split(&ft, '\.') + if index(g:indent_guides_exclude_filetypes, ft) > -1 + return 1 + end + endfor + return 0 +endfunction diff --git a/sources_non_forked/vim-indent-guides/doc/indent_guides.txt b/sources_non_forked/vim-indent-guides/doc/indent_guides.txt new file mode 100644 index 00000000..e0fa05b3 --- /dev/null +++ b/sources_non_forked/vim-indent-guides/doc/indent_guides.txt @@ -0,0 +1,339 @@ +*indent_guides.txt* A plugin for visually displaying indent levels in Vim. + + *indent-guides* + ____ __ __ ______ _ __ + / _/____ ____/ /___ ____ / /_ / ____/__ __(_)____/ /___ _____ + / / / __ \/ __ // _ \/ __ \/ __/ / / __ / / / / // __ // _ \/ ___/ + _/ / / / / / /_/ // __/ / / / /_ / /_/ // /_/ / // /_/ // __(__ ) + /___//_/ /_/\__,_/ \___/_/ /_/\__/ \____/ \__,_/_/ \__,_/ \___/____/ + + +Author: Nate Kane +Version: 1.7 +Last Change: 07 Mar 2013 + +============================================================================== +CONTENTS *indent-guides-contents* + + 1. Introduction.......................... |indent-guides-introduction| + 2. Commands.............................. |indent-guides-commands| + 3. Options............................... |indent-guides-options| + 4. Mappings.............................. |indent-guides-mappings| + 5. Terminal Vim.......................... |indent-guides-terminal-vim| + 6. About................................. |indent-guides-about| + 7. Changelog............................. |indent-guides-changelog| + 8. License............................... |indent-guides-license| + +============================================================================== +1. INTRODUCTION *indent-guides-introduction* + +Indent Guides is a plugin for visually displaying indent levels in Vim. + +This plugin should work with gVim out of the box, no configuration needed. + +Features:~ + * Can detect both tab and space indent styles. + * Automatically inspects your colorscheme and picks appropriate colors (gVim + only). + * Will highlight indent levels with alternating colors. + * Full support for gVim and basic support for Terminal Vim. + * Seems to work on Windows gVim 7.3 (haven't done any extensive tests + though). + * Customizable size for indent guides, eg. skinny guides (soft-tabs only). + * Customizable start indent level. + * Highlight support for files with a mixture of tab and space indent styles. + +============================================================================== +2. COMMANDS *indent-guides-commands* + +------------------------------------------------------------------------------ +:IndentGuidesToggle *:IndentGuidesToggle* + Toggles the indent guides on and off. + +------------------------------------------------------------------------------ +:IndentGuidesEnable *:IndentGuidesEnable* + Enables the indent guides for the current buffer and any other buffer upon + entering it. + +------------------------------------------------------------------------------ +:IndentGuidesDisable *:IndentGuidesDisable* + Disables the indent guides for the current buffer and any other buffer upon + entering it. + +============================================================================== +3. OPTIONS *indent-guides-options* + +------------------------------------------------------------------------------ + *'indent_guides_indent_levels'* +Use this option to control how many indent levels to display guides for. + +Default: 30. Values: integer. +> + let g:indent_guides_indent_levels = 30 +< + +------------------------------------------------------------------------------ + *'indent_guides_auto_colors'* +Use this option to control whether or not the plugin automatically calculates +the highlight colors. Will use the current colorscheme's background color as a +base color. + +Default: 1. Values: 0 or 1. +> + let g:indent_guides_auto_colors = 1 +< + +If you set this option to 0, be sure to manually define some highlight colors +in an autocmd. +> + let g:indent_guides_auto_colors = 0 + autocmd VimEnter,Colorscheme * :hi IndentGuidesOdd guibg=red ctermbg=3 + autocmd VimEnter,Colorscheme * :hi IndentGuidesEven guibg=green ctermbg=4 +< + +Alternatively you can add the following lines to your colorscheme file. +> + hi IndentGuidesOdd guibg=red ctermbg=3 + hi IndentGuidesEven guibg=green ctermbg=4 +< + +------------------------------------------------------------------------------ + *'indent_guides_color_change_percent'* +Use this option to control the percent at which the highlight colors will be +lightened or darkened. + +Default: 10 (10%). Values: between 0 and 100. +> + let g:indent_guides_color_change_percent = 10 +< + +------------------------------------------------------------------------------ + *'indent_guides_guide_size'* +Use this option to customize the size of the indent guide. By default the +value is set to 0, which will set the guide size to be the same as the +|shiftwidth|. Setting this value to be larger than the |shiftwidth| is essentially +the same as setting it to 0. + +A common use of this setting is to create skinny indent guides, which look +great with a |shiftwidth| of 4 or more. + +NOTE: This option only works for soft-tabs (spaces) and not hard-tabs. + +Default: 0. Values: between 0 and |shiftwidth|. +> + let g:indent_guides_guide_size = 1 +< + +------------------------------------------------------------------------------ + *'indent_guides_start_level'* +Use this option to control which indent level to start showing guides from. + +Default: 1. Values: between 1 and g:|indent_guides_indent_levels|. +> + let g:indent_guides_start_level = 2 +< + +------------------------------------------------------------------------------ + *'indent_guides_space_guides'* +Use this option to control whether the plugin considers spaces as indention. + +Default: 1. Values: 0 or 1. +> + let g:indent_guides_space_guides = 0 +< + +------------------------------------------------------------------------------ + *'indent_guides_soft_pattern'* +Use this option to explicitly specify a pattern for soft indentation. For +example to match spaces only in the beginning of line use ' ' pattern. + +Default: '\s'. Values: Vim regexp. +> + let g:indent_guides_soft_pattern = ' ' +< + +------------------------------------------------------------------------------ + *'indent_guides_enable_on_vim_startup'* +Use this option to control whether the plugin is enabled on Vim startup. + +Default: 0. Values: 0 or 1. +> + let g:indent_guides_enable_on_vim_startup = 0 +< + +------------------------------------------------------------------------------ + *'indent_guides_exclude_filetypes'* +Use this option to specify a list of filetypes to disable the plugin for. + +Default: ['help']. Values: list of strings. +> + let g:indent_guides_exclude_filetypes = ['help', 'nerdtree'] +< + +------------------------------------------------------------------------------ + *'indent_guides_default_mapping'* +Use this option to control whether the default mapping (ig) gets set. + +Default: 1. Values: 0 or 1. +> + let g:indent_guides_default_mapping = 0 +< + +============================================================================== +4. MAPPINGS *indent-guides-mappings* + +The default mapping for toggling indent guides is ig. You can easily +map it to other keys. For example: +> + :nmap ig IndentGuidesToggle +< + +You can also map some other commands that are not mapped by default. For +example: +> + :nmap ie IndentGuidesEnable + :nmap id IndentGuidesDisable +< + +============================================================================== +5. TERMINAL VIM *indent-guides-terminal-vim* + +At the moment Terminal Vim only has basic support. This means is that colors +won't be automatically calculated based on your colorscheme. Instead, some +preset colors are used depending on whether `background` is set to `dark` or +`light`. + +When `set background=dark` is used, the following highlight colors will be +defined: +> + hi IndentGuidesOdd ctermbg=black + hi IndentGuidesEven ctermbg=darkgrey +< + +Alternatively, when `set background=light` is used, the following highlight +colors will be defined: +> + hi IndentGuidesOdd ctermbg=white + hi IndentGuidesEven ctermbg=lightgrey +< + +If for some reason it's incorrectly defining light highlight colors instead of +dark ones or vice versa, the first thing you should check is that the +`background` value is being set correctly for your colorscheme. Sometimes it's +best to manually set the `background` value in your `.vimrc`, for example: +> + colorscheme desert256 + set background=dark +< + +Alternatively you can manually setup the highlight colors yourself, see +|indent_guides_auto_colors| for an example. + +============================================================================== +6. ABOUT *indent-guides-about* + +Why did I build this plugin?~ + * I believe indent guides make nested code easier to read and understand. + * Other editors have them and it's high time Vim did. + * None of the existing indent guide plugins on the market suited my needs. + * I wanted to learn me some VimL. + +Links:~ + * Github: https://github.com/nathanaelkane/vim-indent-guides + * Bugs & Issues: https://github.com/nathanaelkane/vim-indent-guides/issues + +Credits:~ + * Matt Wozniski (godlygeek) for letting me use the list of color names and + hex codes from his CSApprox plugin. + +Contact:~ + * Twitter: @nathanaelkane + * Email: + +Bug reports, feedback, suggestions etc are welcomed. + +============================================================================== +7. CHANGELOG *indent-guides-changelog* + +1.8 (pending release)~ + * Added option g:|indent_guides_soft_pattern| to control the pattern for + soft indentation (thanks @sergey-vlasov). + * Added option g:|indent_guides_default_mapping| to control whether the + default mapping (ig) gets set (thanks @suy). + * Set size of indent guide to `tabstop` value when `shiftwidth=0` or + `noexpandtab` is used (thanks @darkfeline and @wilywampa). + +1.7~ + * Added way to override the default mapping (thanks @xuhdev). + * Added option g:|indent_guides_exclude_filetypes| to specify a list of + filetypes to disable the plugin for. + * Disable the plugin when in a diff. + * Various bug fixes. + +1.6~ + * Added option g:|indent_guides_space_guides| to control whether spaces are + considered as indention (thanks @scoz). + * Added 'doc/tags' to gitignore (thanks @lenniboy). + * Fixed E803 ID not found spam (thanks @mutewinter). + * Fixed str2float issue with Vim 7.1 (thanks @acx0). + +1.5~ + * Added highlight support for files with a mixture of tab and space indent + styles (thanks @graywh). + * Added -bar to all the :commands so they can chain with other :commands + (thanks @graywh). + * No longer overriding pre-defined custom highlight colors (thanks @graywh). + * Using str2float to work around a float bug in some versions of Vim 7.2 + (thanks @voidus). + +1.4~ + * Added the new plugin option g:|indent_guides_enable_on_vim_startup|. + * Improved Windows support. + +1.3~ + * Changed the default value of g:|indent_guides_color_change_percent| to 10. + * Added support for gVim themes that don't specify a `hi Normal guibg` + color. + +1.2~ + * Customizable size for indent guides, eg. skinny guides (soft-tabs only). + * Customizable start indent level. + * Refactored some internal logic. + +1.1~ + * Added basic support for Terminal Vim. See |indent-guides-terminal-vim| for + more information. + * Cut down on rgb to hex color conversions by adding a big dictionary of + color names and hex codes. + * Various bug fixes. + +1.0~ + * First public version. + +============================================================================== +8. LICENSE *indent-guides-license* + +The MIT Licence +http://www.opensource.org/licenses/mit-license.php + +Copyright (c) 2010-2013 Nate Kane + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +vim:tw=78:ts=2:ft=help:norl: diff --git a/sources_non_forked/vim-indent-guides/plugin/indent_guides.vim b/sources_non_forked/vim-indent-guides/plugin/indent_guides.vim new file mode 100644 index 00000000..7fbc41e5 --- /dev/null +++ b/sources_non_forked/vim-indent-guides/plugin/indent_guides.vim @@ -0,0 +1,86 @@ +" Author: Nate Kane +" Homepage: http://github.com/nathanaelkane/vim-indent-guides + +if exists('g:loaded_indent_guides') || &cp + finish +endif +let g:loaded_indent_guides = 1 +call indent_guides#define_default_highlights() + +function! s:IndentGuidesToggle() + call indent_guides#toggle() +endfunction + +function! s:IndentGuidesEnable() + call indent_guides#enable() +endfunction + +function! s:IndentGuidesDisable() + call indent_guides#disable() +endfunction + +" Commands +command! -bar IndentGuidesToggle call s:IndentGuidesToggle() +command! -bar IndentGuidesEnable call s:IndentGuidesEnable() +command! -bar IndentGuidesDisable call s:IndentGuidesDisable() + +" +" Initializes a given variable to a given value. The variable is only +" initialized if it does not exist prior. +" +function s:InitVariable(var, value) + if !exists(a:var) + if type(a:value) == type("") + exec 'let ' . a:var . ' = ' . "'" . a:value . "'" + else + exec 'let ' . a:var . ' = ' . a:value + endif + endif +endfunction + +" Fixed global variables +let g:indent_guides_autocmds_enabled = 0 +let g:indent_guides_color_hex_pattern = '#[0-9A-Fa-f]\{6\}' +let g:indent_guides_color_hex_guibg_pattern = 'guibg=\zs' . g:indent_guides_color_hex_pattern . '\ze' +let g:indent_guides_color_name_guibg_pattern = "guibg='\\?\\zs[0-9A-Za-z ]\\+\\ze'\\?" + +" Configurable global variables +call s:InitVariable('g:indent_guides_indent_levels', 30) +call s:InitVariable('g:indent_guides_auto_colors', 1) +call s:InitVariable('g:indent_guides_color_change_percent', 10) " ie. 10% +call s:InitVariable('g:indent_guides_guide_size', 0) +call s:InitVariable('g:indent_guides_start_level', 1) +call s:InitVariable('g:indent_guides_enable_on_vim_startup', 0) +call s:InitVariable('g:indent_guides_debug', 0) +call s:InitVariable('g:indent_guides_space_guides', 1) +call s:InitVariable('g:indent_guides_soft_pattern', '\s') +call s:InitVariable('g:indent_guides_default_mapping', 1) + +if !exists('g:indent_guides_exclude_filetypes') + let g:indent_guides_exclude_filetypes = ['help'] +endif + +" Default mapping +if !hasmapto('IndentGuidesToggle', 'n') && maparg('ig', 'n') == '' + \ && g:indent_guides_default_mapping != 0 + nmap ig IndentGuidesToggle +endif + +" Plug mappings +nnoremap