neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit b201cbfc61916a831d4a36f58284a5c1a3e006e1
parent 23d8f5b870ab2a12882ba20e32d24b31c137f6a9
Author: zeertzjq <zeertzjq@outlook.com>
Date:   Tue, 20 Dec 2022 05:22:13 +0800

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".

https://github.com/vim/vim/commit/07146ad1d33ba0d36b324873e5c461931e6b025e

Diffstat:
Msrc/nvim/indent.c | 2+-
Msrc/nvim/testdir/test_fold.vim | 21+++++++++++++++++++++
2 files changed, 22 insertions(+), 1 deletion(-)

diff --git a/src/nvim/indent.c b/src/nvim/indent.c @@ -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); } diff --git a/src/nvim/testdir/test_fold.vim b/src/nvim/testdir/test_fold.vim @@ -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']