vim-patch:9.0.1078: with the +vartabs feature indent folding may use wrong 'ts'

Problem:    With the +vartabs feature indent folding may use wrong 'tabstop'.
Solution:   Use the "buf" argument instead of "curbuf".

07146ad1d3
This commit is contained in:
zeertzjq
2022-12-20 05:22:13 +08:00
parent 23d8f5b870
commit b201cbfc61
2 changed files with 22 additions and 1 deletions

View File

@@ -378,7 +378,7 @@ int get_indent_lnum(linenr_T lnum)
int get_indent_buf(buf_T *buf, linenr_T lnum)
{
return get_indent_str_vtab(ml_get_buf(buf, lnum, false),
curbuf->b_p_ts,
buf->b_p_ts,
buf->b_p_vts_array,
false);
}

View File

@@ -157,6 +157,27 @@ func Test_indent_fold_max()
bw!
endfunc
func Test_indent_fold_tabstop()
call setline(1, ['0', ' 1', ' 1', "\t2", "\t2"])
setlocal shiftwidth=4
setlocal foldcolumn=1
setlocal foldlevel=2
setlocal foldmethod=indent
redraw
call assert_equal('2 2', ScreenLines(5, 10)[0])
vsplit
windo diffthis
botright new
" This 'tabstop' value should not be used for folding in other buffers.
setlocal tabstop=4
diffoff!
redraw
call assert_equal('2 2', ScreenLines(5, 10)[0])
bwipe!
bwipe!
endfunc
func Test_manual_fold_with_filter()
CheckExecutable cat
for type in ['manual', 'marker']