35 Commits
1.3 ... 1.6

Author SHA1 Message Date
Nate Kane
cf6f4d4661 Bump version to 1.6. 2012-01-01 21:44:16 +10:00
Nate Kane
2cbe919452 Update copyright year in help file. 2012-01-01 21:44:14 +10:00
Nate Kane
e8f50f3c8b Remove IRC as contact method in help file. 2012-01-01 21:44:10 +10:00
Nate
f1c115ce5d Merge pull request #25 from mutewinter/master
Fix E803 ID not found spam.
2011-11-28 14:43:13 -08:00
Nate
287132df04 Merge pull request #27 from acx0/master
Fix str2float issue with Vim 7.1.
2011-11-28 14:27:16 -08:00
Sam Lidder
bdf4ec3ff8 Added test to only use str2float if compiled with +float 2011-10-19 22:36:39 -04:00
Jeremy Mack
57b6da6d12 Fixes E803 ID not found spam 2011-09-28 21:19:41 -03:00
Nate
6854275667 Merge pull request #19 from scoz/ignore-space-option
Added a flag for ignoring spaces.
2011-08-30 05:21:42 -07:00
Nate
eb5644430a Merge pull request #22 from lenniboy/master
Add 'doc/tags' to gitgnore.
2011-08-30 05:09:31 -07:00
Leonard Ehrenfried
951619130f add doc/tags to gitgnore - helps to keep the vim/bundles dir clean if using pathogen with git submodules 2011-08-23 22:14:10 +02:00
Ryan Souza
9d189306aa Added a flag for ignoring spaces
Added flag g:indent_guides_enable_on_vim_startup
Controls whether spaces are considered for indent calculating
2011-07-31 18:11:04 -07:00
Nate Kane
62a2fd103f Updated the readme and help file. 2011-03-13 22:15:34 +11:00
Nate Kane
7826042406 Added new test file. 2011-03-13 21:38:26 +11:00
Nate Kane
6e145a10cf Whitespace. 2011-03-13 21:34:00 +11:00
Nate Kane
60f435ee57 Removed the indent_guides#get_indent_size function. 2011-03-13 21:32:28 +11:00
Nate Kane
5f48d29177 Refactored the regex for the highlight patterns. 2011-03-13 21:29:27 +11:00
Nate Kane
a3ba000ddb Updated help file. 2011-03-06 23:49:11 +10:00
Nate Kane
d9c596352a Fixed bug with calculating guide size. 2011-03-06 23:48:08 +10:00
Nate Kane
7af506c797 Tweaked highlight patterns. 2011-03-06 23:31:54 +10:00
Nate Kane
73703c93ad Updated test files. 2011-03-06 23:30:35 +10:00
Nate Kane
78d34d1018 Merge branch 'mixed-tabs-and-spaces' of https://github.com/graywh/vim-indent-guides into graywh-mixed-tabs-and-spaces
* 'mixed-tabs-and-spaces' of https://github.com/graywh/vim-indent-guides:
  Partial support for mixed tabs and spaces.
2011-03-06 22:35:16 +10:00
Will Gray
f7d5111c34 Partial support for mixed tabs and spaces.
Also account for 1 tab == 1 indent.
2011-02-21 14:08:05 -06:00
Will Gray
0a14a1558e Fix typo causing global settings to be stored as strings. 2011-02-21 13:23:21 -06:00
Nate Kane
ed8eff420b Updated the help file 2011-02-21 23:48:14 +10:00
Nate Kane
5146db837f Merge branch 'master' of https://github.com/voidus/vim-indent-guides into voidus-master
* 'master' of https://github.com/voidus/vim-indent-guides:
  Use str2float instead of plain floats. Fixes #10
2011-02-21 23:38:47 +10:00
Nate Kane
feba7e9fa7 Updated the help file 2011-02-21 23:36:22 +10:00
Nate Kane
2415d8b709 Merge branch 'graywh-issue5'
* graywh-issue5:
  Removed unnecessary exe calls for default highlights
  Don't clobber pre-set custom colors.
2011-02-21 23:31:51 +10:00
Nate Kane
fa67d46aca Removed unnecessary exe calls for default highlights 2011-02-21 23:29:30 +10:00
Simon Kohlmeyer
f972f0264f Use str2float instead of plain floats. Fixes #10
This is used to work around a vim bug throwing E806: using Float as String in
some Situations.
2011-02-21 10:34:27 +01:00
Nate Kane
3cd1b09fb3 Updated the help file. 2011-02-20 22:55:19 +10:00
Will Gray
9441c97e57 Enable chaining :commands with :bar. 2011-02-17 15:29:34 -06:00
Will Gray
10b809d187 Don't clobber pre-set custom colors. 2011-02-17 15:13:14 -06:00
Nate Kane
4a3c2d3d46 Updated the Last Change date 2011-02-06 22:54:48 +10:00
Nate Kane
353bef3dba Improved Windows support 2011-01-24 22:25:17 +10:00
Nate Kane
3c86647883 Added new global option to configure whether the plugin is enabled on Vim startup 2011-01-24 20:45:18 +10:00
14 changed files with 313 additions and 57 deletions

1
.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
doc/tags

View File

@@ -7,8 +7,9 @@ Indent Guides is a plugin for visually displaying indent levels in Vim.
* 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.
* 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+
@@ -34,18 +35,23 @@ Here's an example of how to define custom colors instead of using the ones the p
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 IndentGuidesEven ctermbg=darkgrey
hi IndentGuidesOdd ctermbg=black
hi IndentGuidesEven ctermbg=darkgrey
Alternatively, when `set background=light` is used, the following highlight colors will be defined:
hi IndentGuidesEven ctermbg=lightgrey
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:
@@ -62,4 +68,3 @@ Alternatively you can manually setup the highlight colors yourself, see `:help i
<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="" />

View File

@@ -877,4 +877,3 @@ function! color_helper#color_name_to_hex(color_name)
return l:hex_code
endfunction

View File

@@ -40,13 +40,16 @@ function! indent_guides#enable()
" 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:pattern = '^\s\{' . (l:level * s:indent_size - s:indent_size) . '\}\zs'
let l:pattern .= '\s\{' . s:guide_size . '\}'
let l:pattern .= '\ze'
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('\s', 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 pattern and add to list
call add(w:indent_guides_matches, matchadd(l:group, l:pattern))
" 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
@@ -67,7 +70,11 @@ function! indent_guides#clear_matches()
if !empty(w:indent_guides_matches)
let l:index = 0
for l:match_id in w:indent_guides_matches
call matchdelete(l:match_id)
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
@@ -152,8 +159,8 @@ endfunction
" Define default highlights.
"
function! indent_guides#define_default_highlights()
exe 'hi IndentGuidesOdd guibg=NONE ctermbg=NONE'
exe 'hi IndentGuidesEven guibg=NONE ctermbg=NONE'
hi default clear IndentGuidesOdd
hi default clear IndentGuidesEven
endfunction
"
@@ -168,20 +175,29 @@ endfunction
" plugin is enabled.
"
function! indent_guides#init_script_vars()
let s:indent_size = indent_guides#get_indent_size()
let s:indent_size = &l:shiftwidth
let s:guide_size = indent_guides#calculate_guide_size()
let s:hi_normal = indent_guides#capture_highlight('Normal')
" remove 'font=<value>' 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: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
" 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
@@ -203,26 +219,15 @@ endfunction
" 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()
let l:guide_size = g:indent_guides_guide_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
if l:guide_size == 0 || l:guide_size > s:indent_size
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
"
" Captures and returns the output of highlight group definitions.
"
@@ -238,3 +243,21 @@ function! indent_guides#capture_highlight(group_name)
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

View File

@@ -9,8 +9,8 @@
Author: Nate Kane <nathanaelkane AT gmail DOT com>
Version: 1.3
Last Change: 17 Jan 2011
Version: 1.6
Last Change: 01 Jan 2012
==============================================================================
CONTENTS *indent-guides-contents*
@@ -41,6 +41,7 @@ Features:~
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*
@@ -90,6 +91,12 @@ in an autocmd.
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
@@ -126,6 +133,23 @@ 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_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
<
==============================================================================
4. MAPPINGS *indent-guides-mappings*
@@ -153,15 +177,15 @@ preset colors are used depending on whether `background` is set to `dark` or
When `set background=dark` is used, the following highlight colors will be
defined:
>
hi IndentGuidesEven ctermbg=darkgrey
hi IndentGuidesOdd ctermbg=black
hi IndentGuidesEven ctermbg=darkgrey
<
Alternatively, when `set background=light` is used, the following highlight
colors will be defined:
>
hi IndentGuidesEven ctermbg=lightgrey
hi IndentGuidesOdd ctermbg=white
hi IndentGuidesEven ctermbg=lightgrey
<
If for some reason it's incorrectly defining light highlight colors instead of
@@ -196,13 +220,32 @@ Credits:~
Contact:~
* Twitter: @nathanaelkane
* Email: <nathanaelkane AT gmail DOT com>
* IRC: nate- on Freenode (I usually idle in the #vim channel)
Bug reports, feedback, suggestions etc are welcomed.
==============================================================================
7. CHANGELOG *indent-guides-changelog*
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 to 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`
@@ -229,7 +272,7 @@ Bug reports, feedback, suggestions etc are welcomed.
The MIT Licence
http://www.opensource.org/licenses/mit-license.php
Copyright (c) 2010-2011 Nate Kane
Copyright (c) 2010-2012 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
@@ -250,4 +293,3 @@ 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:

View File

@@ -20,9 +20,9 @@ function! s:IndentGuidesDisable()
endfunction
" Commands
command! IndentGuidesToggle call s:IndentGuidesToggle()
command! IndentGuidesEnable call s:IndentGuidesEnable()
command! IndentGuidesDisable call s:IndentGuidesDisable()
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
@@ -30,7 +30,7 @@ command! IndentGuidesDisable call s:IndentGuidesDisable()
"
function s:InitVariable(var, value)
if !exists(a:var)
if type(a:var) == type("")
if type(a:value) == type("")
exec 'let ' . a:var . ' = ' . "'" . a:value . "'"
else
exec 'let ' . a:var . ' = ' . a:value
@@ -45,12 +45,14 @@ let g:indent_guides_color_hex_guibg_pattern = 'guibg=\zs' . g:indent_guides_col
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_debug', 0 )
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 )
" Default mapping
nmap <Leader>ig :IndentGuidesToggle<CR>
@@ -58,6 +60,10 @@ nmap <Leader>ig :IndentGuidesToggle<CR>
" Auto commands
augroup indent_guides
autocmd!
if g:indent_guides_enable_on_vim_startup
autocmd VimEnter * :IndentGuidesEnable
endif
autocmd BufEnter,WinEnter * call indent_guides#process_autocmds()
augroup END

View File

@@ -1,4 +1,4 @@
vim:tw=78:ts=2:sw=2:et
vim:tw=78:ts=2:sw=2:et:nolist
test
test
@@ -23,3 +23,25 @@ test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test

View File

@@ -1,4 +1,27 @@
vim:tw=78:ts=2:sw=2:noet
vim:tw=78:ts=2:sw=2:noet:nolist
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
@@ -22,4 +45,3 @@ test
test
test
test

View File

@@ -0,0 +1,24 @@
vim:tw=78:ts=2:sw=4:noet:nolist
test
test
test
test
test
test
test
test
test
test test
test
test
test
test
test
test
test
test
test
test
test
test

View File

@@ -1,4 +1,4 @@
vim:tw=78:ts=4:sw=4:et
vim:tw=78:ts=4:sw=4:et:nolist
test
test
@@ -23,3 +23,25 @@ test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test

View File

@@ -1,4 +1,27 @@
vim:tw=78:ts=4:sw=4:noet
vim:tw=78:ts=4:sw=4:noet:nolist
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
@@ -22,4 +45,3 @@ test
test
test
test

View File

@@ -0,0 +1,24 @@
vim:tw=78:ts=8:sw=2:noet:nolist
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test

View File

@@ -1,4 +1,4 @@
vim:tw=78:ts=8:sw=8:et
vim:tw=78:ts=8:sw=8:et:nolist
test
test
@@ -23,3 +23,25 @@ test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test

View File

@@ -1,4 +1,27 @@
vim:tw=78:ts=8:sw=8:noet
vim:tw=78:ts=8:sw=8:noet:nolist
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
test
@@ -22,4 +45,3 @@ test
test
test
test