vim-patch:9.0.1546: some commands for opening a file don't use 'switchbuf' (#23600)

Problem:    Some commands for opening a file don't use 'switchbuf'.
Solution:   Use 'switchbuf' for more commands. (Yegappan Lakshmanan,
            closes vim/vim#12383, closes vim/vim#12381)

54be5fb382

Co-authored-by: Yegappan Lakshmanan <yegappan@yahoo.com>
This commit is contained in:
zeertzjq
2023-05-13 08:40:06 +08:00
committed by GitHub
parent a6d63591f1
commit f76e1ac92e
3 changed files with 103 additions and 14 deletions

View File

@@ -300,4 +300,65 @@ func Test_gf_subdirs_wildcard()
set path&
endfunc
" Test for 'switchbuf' with gf and gF commands
func Test_gf_switchbuf()
call writefile(repeat(["aaa"], 10), "Xtest1", 'D')
edit Xtest1
new
call setline(1, ['Xtest1'])
" Test for 'useopen'
set switchbuf=useopen
call cursor(1, 1)
exe "normal \<C-W>f"
call assert_equal([2, 2], [winnr(), winnr('$')])
close
" If the file is opened in another tabpage, then it should not be considered
tabedit Xtest1
tabfirst
exe "normal \<C-W>f"
call assert_equal([1, 2], [winnr(), winnr('$')])
call assert_equal([1, 2], [tabpagenr(), tabpagenr('$')])
close
" Test for 'usetab'
set switchbuf=usetab
exe "normal \<C-W>f"
call assert_equal([1, 1], [winnr(), winnr('$')])
call assert_equal([2, 2], [tabpagenr(), tabpagenr('$')])
%bw!
" Test for CTRL-W_F with 'useopen'
set isfname-=:
call setline(1, ['Xtest1:5'])
set switchbuf=useopen
split +1 Xtest1
wincmd b
exe "normal \<C-W>F"
call assert_equal([1, 2], [winnr(), winnr('$')])
call assert_equal(5, line('.'))
close
" If the file is opened in another tabpage, then it should not be considered
tabedit +1 Xtest1
tabfirst
exe "normal \<C-W>F"
call assert_equal([1, 2], [winnr(), winnr('$')])
call assert_equal(5, line('.'))
call assert_equal([1, 2], [tabpagenr(), tabpagenr('$')])
close
" Test for CTRL_W_F with 'usetab'
set switchbuf=usetab
exe "normal \<C-W>F"
call assert_equal([2, 2], [tabpagenr(), tabpagenr('$')])
call assert_equal([1, 1], [winnr(), winnr('$')])
call assert_equal(5, line('.'))
set switchbuf=
set isfname&
%bw!
endfunc
" vim: shiftwidth=2 sts=2 expandtab