mirror of
https://github.com/preservim/vim-indent-guides.git
synced 2025-11-17 14:13:37 -05:00
Compare commits
32 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6bbbc619d6 | ||
|
|
5344539e70 | ||
|
|
80d96b425a | ||
|
|
a0e3e35bd3 | ||
|
|
77bf750ed0 | ||
|
|
c28e193772 | ||
|
|
67398b8358 | ||
|
|
06d2b34874 | ||
|
|
d53103f9a8 | ||
|
|
f2608db67e | ||
|
|
538554b19f | ||
|
|
d639a48f04 | ||
|
|
b1f149ff71 | ||
|
|
9dbc046d83 | ||
|
|
23211a3b4f | ||
|
|
8365779904 | ||
|
|
38a4501224 | ||
|
|
a7d8f3dce7 | ||
|
|
9712a19ba9 | ||
|
|
b9266fb158 | ||
|
|
32b9f52837 | ||
|
|
046104c2f0 | ||
|
|
9b43f5c84c | ||
|
|
b4b4ce9c76 | ||
|
|
51436e3677 | ||
|
|
b3656708cb | ||
|
|
0ebc1eb93d | ||
|
|
78f60359c8 | ||
|
|
5d01603b9a | ||
|
|
14aae71298 | ||
|
|
6d903df6e7 | ||
|
|
0c0ac44889 |
@@ -1,15 +1,22 @@
|
||||
# Indent Guides
|
||||
Indent Guides is a plugin for visually displaying indent levels in vim.
|
||||
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.
|
||||
* 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).
|
||||
* **NEW:** Customizable size for indent guides, eg. skinny guides (soft-tabs only).
|
||||
* **NEW:** Customizable start indent level.
|
||||
|
||||
## Requirements
|
||||
* Vim 7.2+
|
||||
|
||||
## Installation
|
||||
To install the plugin just copy `autoload`, `plugin`, `doc` directories into your .vim directory.
|
||||
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:
|
||||
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
|
||||
@@ -17,12 +24,42 @@ Alternatively if you have [Pathogen](http://www.vim.org/scripts/script.php?scrip
|
||||
## Usage
|
||||
The default mapping to toggle the plugin is `<Leader>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
|
||||
|
||||
### 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 IndentGuidesEven ctermbg=darkgrey
|
||||
hi IndentGuidesOdd ctermbg=black
|
||||
|
||||
Alternatively, when `set background=light` is used, the following highlight colors will be defined:
|
||||
|
||||
hi IndentGuidesEven ctermbg=lightgrey
|
||||
hi IndentGuidesOdd ctermbg=white
|
||||
|
||||
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
|
||||
<img src="https://dl.dropbox.com/u/1019520/vim-indent-guides/rdark.png" width="400" height="400" alt="Indent Guides screenshot: rdark" />
|
||||
<img src="https://dl.dropbox.com/u/1019520/vim-indent-guides/bclear.png" width="400" height="400" alt="Indent Guides screenshot: bclear" />
|
||||
<img src="https://dl.dropbox.com/u/1019520/vim-indent-guides/clarity.png" width="400" height="400" alt="Indent Guides screenshot: clarity" />
|
||||
<img src="https://dl.dropbox.com/u/1019520/vim-indent-guides/moss.png" width="400" height="400" alt="Indent Guides screenshot: moss" />
|
||||
<img src="http://i.imgur.com/ONgoj.png" width="448" height="448" alt="" />
|
||||
<img src="http://i.imgur.com/7tMBl.png" width="448" height="448" alt="" />
|
||||
<img src="http://i.imgur.com/EvrqK.png" width="448" height="448" alt="" />
|
||||
<img src="http://i.imgur.com/hHqp2.png" width="448" height="448" alt="" />
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -32,23 +32,21 @@ endfunction
|
||||
"
|
||||
function! indent_guides#enable()
|
||||
let g:indent_guides_autocmds_enabled = 1
|
||||
call indent_guides#clear_matches()
|
||||
|
||||
if g:indent_guides_auto_colors
|
||||
call indent_guides#highlight_colors()
|
||||
endif
|
||||
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 level in range(1, g:indent_guides_indent_levels)
|
||||
let group = 'IndentGuides' . ((level % 2 == 0) ? 'Even' : 'Odd')
|
||||
let multiplier = (&l:expandtab == 1) ? &l:shiftwidth : 1
|
||||
let pattern = '^\s\{' . (level * multiplier - multiplier) . '\}\zs'
|
||||
let pattern .= '\s\{' . multiplier . '\}'
|
||||
let pattern .= '\ze'
|
||||
for l:level in range(s:start_level, s:indent_levels)
|
||||
let l:group = 'IndentGuides' . ((l:level % 2 == 0) ? 'Even' : 'Odd')
|
||||
let l:pattern = '^\s\{' . (l:level * s:indent_size - s:indent_size) . '\}\zs'
|
||||
let l:pattern .= '\s\{' . s:guide_size . '\}'
|
||||
let l:pattern .= '\ze'
|
||||
|
||||
" define the higlight pattern and add to list
|
||||
call add(w:indent_guides_matches, matchadd(group, pattern))
|
||||
call add(w:indent_guides_matches, matchadd(l:group, l:pattern))
|
||||
endfor
|
||||
endfunction
|
||||
|
||||
@@ -67,11 +65,11 @@ endfunction
|
||||
function! indent_guides#clear_matches()
|
||||
call indent_guides#init_matches()
|
||||
if !empty(w:indent_guides_matches)
|
||||
let index = 0
|
||||
for match_id in w:indent_guides_matches
|
||||
call matchdelete(match_id)
|
||||
call remove(w:indent_guides_matches, index)
|
||||
let index += index
|
||||
let l:index = 0
|
||||
for l:match_id in w:indent_guides_matches
|
||||
call matchdelete(l:match_id)
|
||||
call remove(w:indent_guides_matches, l:index)
|
||||
let l:index += l:index
|
||||
endfor
|
||||
endif
|
||||
endfunction
|
||||
@@ -80,46 +78,146 @@ endfunction
|
||||
" Automagically calculates and defines the indent highlight colors.
|
||||
"
|
||||
function! indent_guides#highlight_colors()
|
||||
if g:indent_guides_auto_colors
|
||||
let hi_normal = indent_guides#capture_highlight('normal')
|
||||
let hex_pattern = 'guibg=\zs'. g:indent_guides_hex_color_pattern . '\ze'
|
||||
let name_pattern = "guibg='\\?\\zs[0-9A-Za-z ]\\+\\ze'\\?"
|
||||
let hi_normal_guibg = ''
|
||||
|
||||
" capture the backgroud color from the normal highlight
|
||||
if hi_normal =~ hex_pattern
|
||||
" hex color code is being used, eg. '#FFFFFF'
|
||||
let hi_normal_guibg = matchstr(hi_normal, hex_pattern)
|
||||
elseif hi_normal =~ name_pattern
|
||||
" color name is being used, eg. 'white'
|
||||
let color_name = matchstr(hi_normal, name_pattern)
|
||||
let hi_normal_guibg = color_helper#color_name_to_hex(color_name)
|
||||
if s:auto_colors
|
||||
if has('gui_running')
|
||||
call indent_guides#gui_highlight_colors()
|
||||
else
|
||||
call indent_guides#cterm_highlight_colors()
|
||||
endif
|
||||
|
||||
if hi_normal_guibg =~ g:indent_guides_hex_color_pattern
|
||||
" calculate the highlight background colors
|
||||
let hi_odd_bg = indent_guides#lighten_or_darken_color(hi_normal_guibg)
|
||||
let hi_even_bg = indent_guides#lighten_or_darken_color(hi_odd_bg)
|
||||
|
||||
" define the new highlights
|
||||
exe 'hi IndentGuidesOdd guibg=' . hi_odd_bg
|
||||
exe 'hi IndentGuidesEven guibg=' . hi_even_bg
|
||||
end
|
||||
endif
|
||||
endfunction
|
||||
|
||||
"
|
||||
" Defines the indent highlight colors for terminal vim.
|
||||
"
|
||||
" NOTE: This function contains no magic at the moment, it will simply use some
|
||||
" light or dark preset colors depending on the `set background=` value.
|
||||
"
|
||||
function! indent_guides#cterm_highlight_colors()
|
||||
let l:colors = (&g:background == 'dark') ? ['darkgrey', 'black'] : ['lightgrey', 'white']
|
||||
|
||||
exe 'hi IndentGuidesEven ctermbg=' . l:colors[0]
|
||||
exe 'hi IndentGuidesOdd ctermbg=' . l:colors[1]
|
||||
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)
|
||||
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
|
||||
exe 'hi IndentGuidesEven guibg=' . l:hi_even_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 percent = g:indent_guides_color_change_percent
|
||||
let l:new_color = ''
|
||||
|
||||
let new_color = (&g:background == 'dark') ?
|
||||
\ color_helper#hex_color_lighten(a:color, percent) :
|
||||
\ color_helper#hex_color_darken (a:color, percent)
|
||||
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 new_color
|
||||
return l:new_color
|
||||
endfunction
|
||||
|
||||
"
|
||||
" Define default highlights.
|
||||
"
|
||||
function! indent_guides#define_default_highlights()
|
||||
exe 'hi IndentGuidesOdd guibg=NONE ctermbg=NONE'
|
||||
exe 'hi IndentGuidesEven guibg=NONE ctermbg=NONE'
|
||||
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()
|
||||
let s:indent_size = indent_guides#get_indent_size()
|
||||
let s:guide_size = indent_guides#calculate_guide_size()
|
||||
let s:hi_normal = indent_guides#capture_highlight('Normal')
|
||||
|
||||
" 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:change_percent = g:indent_guides_color_change_percent / 100.0
|
||||
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
|
||||
|
||||
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
|
||||
let l:indent_size = indent_guides#get_indent_size()
|
||||
|
||||
if l:indent_size > 1 && l:guide_size >= 1
|
||||
let l:guide_size = (l:guide_size > s:indent_size) ? s:indent_size : l:guide_size
|
||||
else
|
||||
let l:guide_size = s:indent_size
|
||||
endif
|
||||
|
||||
return l:guide_size
|
||||
endfunction
|
||||
|
||||
"
|
||||
" Gets the indent size, which depends on whether soft-tabs or hard-tabs are
|
||||
" being used.
|
||||
"
|
||||
function! indent_guides#get_indent_size()
|
||||
return (&l:expandtab == 1) ? &l:shiftwidth : 1
|
||||
endfunction
|
||||
|
||||
"
|
||||
@@ -129,18 +227,11 @@ endfunction
|
||||
" Returns: 'Normal xxx guifg=#323232 guibg=#ffffff
|
||||
"
|
||||
function! indent_guides#capture_highlight(group_name)
|
||||
redir => output
|
||||
redir => l:output
|
||||
exe "silent hi " . a:group_name
|
||||
redir END
|
||||
|
||||
return output
|
||||
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 : []
|
||||
let l:output = substitute(l:output, "\n", "", "")
|
||||
return l:output
|
||||
endfunction
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
*indent_guides.txt* A plugin for visually displaying indent levels in vim.
|
||||
*indent_guides.txt* A plugin for visually displaying indent levels in Vim.
|
||||
|
||||
*indent-guides*
|
||||
____ __ __ ______ _ __
|
||||
@@ -9,29 +9,38 @@
|
||||
|
||||
|
||||
Author: Nate Kane <nathanaelkane AT gmail DOT com>
|
||||
Version: 1.0
|
||||
Last Change: 12 Dec 2010
|
||||
Version: 1.2
|
||||
Last Change: 10 Jan 2011
|
||||
|
||||
==============================================================================
|
||||
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. About..................................... |indent-guides-about|
|
||||
6. Changelog................................. |indent-guides-changelog|
|
||||
7. License................................... |indent-guides-license|
|
||||
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.
|
||||
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.
|
||||
* 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.
|
||||
|
||||
==============================================================================
|
||||
2. COMMANDS *indent-guides-commands*
|
||||
@@ -56,6 +65,7 @@ Features:~
|
||||
------------------------------------------------------------------------------
|
||||
*'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
|
||||
@@ -66,24 +76,54 @@ Default: 30. Values: integer.
|
||||
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.
|
||||
If you set this option to 0, be sure to manually define some highlight colors
|
||||
in an autocmd.
|
||||
>
|
||||
hi IndentGuidesOdd guibg=#EEEEEE
|
||||
hi IndentGuidesEven guibg=#CCCCCC
|
||||
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
|
||||
<
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
*'indent_guides_color_change_percent'*
|
||||
Use this option to control the percent at which the highlight colors will be
|
||||
lightened or darkened.
|
||||
Default: 0.05. Values: between 0 and 1.
|
||||
|
||||
Default: 5 (5%). Values: between 0 and 100.
|
||||
>
|
||||
let g:indent_guides_color_change_percent = 0.05
|
||||
let g:indent_guides_color_change_percent = 5
|
||||
<
|
||||
|
||||
------------------------------------------------------------------------------
|
||||
*'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
|
||||
<
|
||||
|
||||
==============================================================================
|
||||
@@ -103,11 +143,45 @@ example:
|
||||
<
|
||||
|
||||
==============================================================================
|
||||
5. ABOUT *indent-guides-about*
|
||||
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 IndentGuidesEven ctermbg=darkgrey
|
||||
hi IndentGuidesOdd ctermbg=black
|
||||
<
|
||||
|
||||
Alternatively, when `set background=light` is used, the following highlight
|
||||
colors will be defined:
|
||||
>
|
||||
hi IndentGuidesEven ctermbg=lightgrey
|
||||
hi IndentGuidesOdd ctermbg=white
|
||||
<
|
||||
|
||||
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.
|
||||
* 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.
|
||||
|
||||
@@ -115,6 +189,10 @@ 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: <nathanaelkane AT gmail DOT com>
|
||||
@@ -123,13 +201,24 @@ Contact:~
|
||||
Bug reports, feedback, suggestions etc are welcomed.
|
||||
|
||||
==============================================================================
|
||||
6. CHANGELOG *indent-guides-changelog*
|
||||
7. CHANGELOG *indent-guides-changelog*
|
||||
|
||||
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.
|
||||
|
||||
==============================================================================
|
||||
7. LICENSE *indent-guides-license*
|
||||
8. LICENSE *indent-guides-license*
|
||||
|
||||
The MIT Licence
|
||||
http://www.opensource.org/licenses/mit-license.php
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
" Author: Nate Kane <nathanaelkane AT gmail DOT com>
|
||||
" Homepage: http://github.com/nathanaelkane/vim-indent-guides
|
||||
|
||||
if exists('g:loaded_indent_guides') || &cp || !has('gui_running')
|
||||
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()
|
||||
@@ -24,34 +24,33 @@ command! IndentGuidesToggle call s:IndentGuidesToggle()
|
||||
command! IndentGuidesEnable call s:IndentGuidesEnable()
|
||||
command! IndentGuidesDisable call s:IndentGuidesDisable()
|
||||
|
||||
" Default options
|
||||
let g:indent_guides_indent_levels =
|
||||
\ exists('g:indent_guides_indent_levels') ?
|
||||
\ g:indent_guides_indent_levels : 30
|
||||
|
||||
let g:indent_guides_auto_colors =
|
||||
\ exists('g:indent_guides_auto_colors') ?
|
||||
\ g:indent_guides_auto_colors : 1
|
||||
|
||||
let g:indent_guides_color_change_percent =
|
||||
\ exists('g:indent_guides_color_change_percent') ?
|
||||
\ g:indent_guides_color_change_percent : 0.05
|
||||
|
||||
let g:indent_guides_debug =
|
||||
\ exists('g:indent_guides_debug') ?
|
||||
\ g:indent_guides_debug : 0
|
||||
|
||||
let g:indent_guides_autocmds_enabled = 0
|
||||
|
||||
"
|
||||
" Regex pattern for a hex color.
|
||||
" Initializes a given variable to a given value. The variable is only
|
||||
" initialized if it does not exist prior.
|
||||
"
|
||||
" Example matches:
|
||||
" - '#123ABC'
|
||||
" - '#ffffff'
|
||||
" - '#000000'
|
||||
"
|
||||
let g:indent_guides_hex_color_pattern = '#[0-9A-Fa-f]\{6\}'
|
||||
function s:InitVariable(var, value)
|
||||
if !exists(a:var)
|
||||
if type(a:var) == 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', 5 ) " ie. 5%
|
||||
call s:InitVariable('g:indent_guides_guide_size', 0 )
|
||||
call s:InitVariable('g:indent_guides_start_level', 1 )
|
||||
call s:InitVariable('g:indent_guides_debug', 0 )
|
||||
|
||||
" Default mapping
|
||||
nmap <Leader>ig :IndentGuidesToggle<CR>
|
||||
|
||||
Reference in New Issue
Block a user