@@ -40,13 +40,21 @@ function! indent_guides#enable()
40
40
" loop through each indent level and define a highlight pattern
41
41
" will automagically figure out whether to use tabs or spaces
42
42
for l: level in range (s: start_level , s: indent_levels )
43
- let l: group = ' IndentGuides' . ((l: level % 2 == 0 ) ? ' Even' : ' Odd' )
44
- let l: pattern = ' ^\s*\%' . ((l: level - 1 ) * s: indent_size + 1 ) . ' v\zs'
45
- let l: pattern .= ' \s*\%' . (((l: level - 1 ) * s: indent_size + 1 ) + s: guide_size ) . ' v'
46
- let l: pattern .= ' \ze'
43
+ let l: group = ' IndentGuides' . ((l: level % 2 == 0 ) ? ' Even' : ' Odd' )
44
+
45
+ " soft-tab pattern
46
+ let l: soft_pattern = ' ^\s*\%' . ((l: level - 1 ) * s: indent_size + 1 ) . ' v\zs'
47
+ let l: soft_pattern .= ' \s*\%' . (((l: level - 1 ) * s: indent_size + 1 ) + s: guide_size ) . ' v'
48
+ let l: soft_pattern .= ' \ze'
49
+
50
+ " hard-tab pattern
51
+ let l: hard_pattern = ' ^\t*\%' . ((l: level - 1 ) * s: indent_size + 1 ) . ' v\zs'
52
+ let l: hard_pattern .= ' \t*\%' . (((l: level - 1 ) * s: indent_size + 1 ) + s: indent_size ) . ' v'
53
+ let l: hard_pattern .= ' \ze'
47
54
48
55
" define the higlight pattern and add to list
49
- call add (w: indent_guides_matches , matchadd (l: group , l: pattern ))
56
+ call add (w: indent_guides_matches , matchadd (l: group , l: soft_pattern ))
57
+ call add (w: indent_guides_matches , matchadd (l: group , l: hard_pattern ))
50
58
endfor
51
59
endfunction
52
60
@@ -206,18 +214,10 @@ endfunction
206
214
" NOTE: Currently, this only works when soft-tabs are being used.
207
215
"
208
216
function ! indent_guides#calculate_guide_size ()
209
- let l: guide_size = g: indent_guides_guide_size
217
+ let l: guide_size = g: indent_guides_guide_size
210
218
211
- if & expandtab == 0 && & tabstop == s: indent_size
219
+ if l: guide_size > s: indent_size
212
220
let l: guide_size = s: indent_size
213
- else
214
- if s: indent_size > 1 && l: guide_size >= 1
215
- if l: guide_size > s: indent_size
216
- let l: guide_size = s: indent_size
217
- end
218
- else
219
- let l: guide_size = s: indent_size
220
- endif
221
221
endif
222
222
223
223
return l: guide_size
0 commit comments