neovim

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

commit 2860d1e018c87a8980ae3e2d16e5a11427df7f6c
parent 04357f2eff750ca7cb32f19d43bf7dd64249a0f9
Author: zeertzjq <zeertzjq@outlook.com>
Date:   Fri, 19 Dec 2025 08:08:26 +0800

vim-patch:9.1.1998: tests: not enough tests for :setlocal omnifunc (#37023)

Problem:  Not enough tests for :setlocal omnifunc (after 9.1.1991).
Solution: Move the last :new after :setlocal. Also test with 'complete'
          (zeertzjq).

closes: vim/vim#18958

https://github.com/vim/vim/commit/cedb1a31714550c44bdb3b1991c63c90faa8a75c
Diffstat:
Mtest/old/testdir/test_ins_complete.vim | 54++++++++++++++++++++++++++++++++++++++++++++----------
Mtest/old/testdir/test_tagfunc.vim | 9+++++----
2 files changed, 49 insertions(+), 14 deletions(-)

diff --git a/test/old/testdir/test_ins_complete.vim b/test/old/testdir/test_ins_complete.vim @@ -2537,32 +2537,49 @@ func Test_completefunc_callback() bw! #" :setlocal and :setglobal - set completefunc& + set complete=F completefunc& setlocal completefunc=function('g:CompleteFunc1',\ [22]) call setline(1, 'sun') LET g:CompleteFunc1Args = [] call feedkeys("A\<C-X>\<C-U>\<Esc>", 'x') call assert_equal([[22, 1, ''], [22, 0, 'sun']], g:CompleteFunc1Args) + LET g:CompleteFunc1Args = [] + call feedkeys("A\<C-N>\<Esc>", 'x') + call assert_equal([[22, 1, ''], [22, 0, 'sun']], g:CompleteFunc1Args) new call setline(1, 'sun') LET g:CompleteFunc1Args = [] call assert_fails('call feedkeys("A\<C-X>\<C-U>\<Esc>", "x")', 'E764:') call assert_equal([], g:CompleteFunc1Args) + LET g:CompleteFunc1Args = [] + call feedkeys("A\<C-N>\<Esc>", 'x') + call assert_equal([], g:CompleteFunc1Args) bw! setglobal completefunc=function('g:CompleteFunc1',\ [23]) call setline(1, 'sun') + LET g:CompleteFunc1Args = [] call feedkeys("A\<C-X>\<C-U>\<Esc>", 'x') call assert_equal([[22, 1, ''], [22, 0, 'sun']], g:CompleteFunc1Args) - new - call setline(1, 'sun') LET g:CompleteFunc1Args = [] - call feedkeys("A\<C-X>\<C-U>\<Esc>", 'x') - call assert_equal([[23, 1, ''], [23, 0, 'sun']], g:CompleteFunc1Args) + call feedkeys("A\<C-N>\<Esc>", 'x') + call assert_equal([[22, 1, ''], [22, 0, 'sun']], g:CompleteFunc1Args) setlocal completefunc& call setline(1, 'sun') LET g:CompleteFunc1Args = [] call assert_fails('call feedkeys("A\<C-X>\<C-U>\<Esc>", "x")', 'E764:') call assert_equal([], g:CompleteFunc1Args) + LET g:CompleteFunc1Args = [] + call feedkeys("A\<C-N>\<Esc>", 'x') + call assert_equal([], g:CompleteFunc1Args) + new + call setline(1, 'sun') + LET g:CompleteFunc1Args = [] + call feedkeys("A\<C-X>\<C-U>\<Esc>", 'x') + call assert_equal([[23, 1, ''], [23, 0, 'sun']], g:CompleteFunc1Args) + LET g:CompleteFunc1Args = [] + call feedkeys("A\<C-N>\<Esc>", 'x') + call assert_equal([[23, 1, ''], [23, 0, 'sun']], g:CompleteFunc1Args) + set complete& completefunc& :%bw! END call CheckLegacyAndVim9Success(lines) @@ -2840,32 +2857,49 @@ func Test_omnifunc_callback() bw! #" :setlocal and :setglobal - set omnifunc& + set complete=o omnifunc& setlocal omnifunc=function('g:OmniFunc1',\ [22]) call setline(1, 'sun') LET g:OmniFunc1Args = [] call feedkeys("A\<C-X>\<C-O>\<Esc>", 'x') call assert_equal([[22, 1, ''], [22, 0, 'sun']], g:OmniFunc1Args) + LET g:OmniFunc1Args = [] + call feedkeys("A\<C-N>\<Esc>", 'x') + call assert_equal([[22, 1, ''], [22, 0, 'sun']], g:OmniFunc1Args) new call setline(1, 'sun') LET g:OmniFunc1Args = [] call assert_fails('call feedkeys("A\<C-X>\<C-O>\<Esc>", "x")', 'E764:') call assert_equal([], g:OmniFunc1Args) + LET g:OmniFunc1Args = [] + call feedkeys("A\<C-N>\<Esc>", 'x') + call assert_equal([], g:OmniFunc1Args) bw! setglobal omnifunc=function('g:OmniFunc1',\ [23]) call setline(1, 'sun') + LET g:OmniFunc1Args = [] call feedkeys("A\<C-X>\<C-O>\<Esc>", 'x') call assert_equal([[22, 1, ''], [22, 0, 'sun']], g:OmniFunc1Args) - new - call setline(1, 'sun') LET g:OmniFunc1Args = [] - call feedkeys("A\<C-X>\<C-O>\<Esc>", 'x') - call assert_equal([[23, 1, ''], [23, 0, 'sun']], g:OmniFunc1Args) + call feedkeys("A\<C-N>\<Esc>", 'x') + call assert_equal([[22, 1, ''], [22, 0, 'sun']], g:OmniFunc1Args) setlocal omnifunc& call setline(1, 'sun') LET g:OmniFunc1Args = [] call assert_fails('call feedkeys("A\<C-X>\<C-O>\<Esc>", "x")', 'E764:') call assert_equal([], g:OmniFunc1Args) + LET g:OmniFunc1Args = [] + call feedkeys("A\<C-N>\<Esc>", 'x') + call assert_equal([], g:OmniFunc1Args) + new + call setline(1, 'sun') + LET g:OmniFunc1Args = [] + call feedkeys("A\<C-X>\<C-O>\<Esc>", 'x') + call assert_equal([[23, 1, ''], [23, 0, 'sun']], g:OmniFunc1Args) + LET g:OmniFunc1Args = [] + call feedkeys("A\<C-N>\<Esc>", 'x') + call assert_equal([[23, 1, ''], [23, 0, 'sun']], g:OmniFunc1Args) + set complete& omnifunc& :%bw! END call CheckLegacyAndVim9Success(lines) diff --git a/test/old/testdir/test_tagfunc.vim b/test/old/testdir/test_tagfunc.vim @@ -277,16 +277,17 @@ func Test_tagfunc_callback() call assert_equal([], g:TagFunc1Args) bw! setglobal tagfunc=function('g:TagFunc1',\ [23]) + LET g:TagFunc1Args = [] call assert_fails("tag a22", 'E433:') call assert_equal([22, 'a22', '', {}], g:TagFunc1Args) - new - LET g:TagFunc1Args = [] - call assert_fails("tag a23", 'E433:') - call assert_equal([23, 'a23', '', {}], g:TagFunc1Args) setlocal tagfunc& LET g:TagFunc1Args = [] call assert_fails("tag a23", 'E433:') call assert_equal([], g:TagFunc1Args) + new + LET g:TagFunc1Args = [] + call assert_fails("tag a23", 'E433:') + call assert_equal([23, 'a23', '', {}], g:TagFunc1Args) :%bw! END call CheckLegacyAndVim9Success(lines)