Need g:indent_guides_tab_guides option
Opened this issue · 0 comments
amerlyq commented
I'm using vim+solarized, sticking to terminal only.
In all my own and new code I use space indents, so skinny guides looks great with
au VimEnter,Colorscheme * hi! IndentGuidesOdd ctermfg=8 ctermbg=0
au VimEnter,Colorscheme * hi! IndentGuidesEven ctermfg=8 ctermbg=0
But half of the time I must support legacy code at work with tabs or at worst with its mixture.
Tabs by itself are shown for me nicely by using :set list
and let g:solarized_visibility="low"
But this view is all messed up by indent guides, making overall image ugly.
I need option to disable hard-tabs indentation only, similar to g:indent_guides_space_guides
.
diff --git a/autoload/indent_guides.vim b/autoload/indent_guides.vim
index 53d4ff9..c779eec 100644
--- a/autoload/indent_guides.vim
+++ b/autoload/indent_guides.vim
@@ -47,14 +47,18 @@ function! indent_guides#enable()
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
+ let l:soft_pattern = indent_guides#indent_highlight_pattern(
+ \ g:indent_guides_soft_pattern, l:column_start, s:guide_size)
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))
+ if g:indent_guides_tab_guides
+ let l:hard_pattern = indent_guides#indent_highlight_pattern(
+ \ '\t', l:column_start, s:indent_size)
+ call add(w:indent_guides_matches, matchadd(l:group, l:hard_pattern))
+ end
endfor
endfunction
diff --git a/doc/indent_guides.txt b/doc/indent_guides.txt
index fe50cb8..b7b88df 100644
--- a/doc/indent_guides.txt
+++ b/doc/indent_guides.txt
@@ -143,6 +143,15 @@ Default: 1. Values: 0 or 1.
<
------------------------------------------------------------------------------
+ *'indent_guides_tab_guides'*
+Use this option to control whether the plugin considers tabs as indention.
+
+Default: 1. Values: 0 or 1.
+>
+ let g:indent_guides_tab_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.
diff --git a/plugin/indent_guides.vim b/plugin/indent_guides.vim
index 8a6dee3..c94079b 100644
--- a/plugin/indent_guides.vim
+++ b/plugin/indent_guides.vim
@@ -58,6 +58,7 @@ 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_tab_guides', 1)
call s:InitVariable('g:indent_guides_soft_pattern', '\s')
call s:InitVariable('g:indent_guides_default_mapping', 1)