mirror of
https://github.com/neovim/neovim.git
synced 2025-10-09 19:36:40 +00:00
vim-patch:9.1.0835: :setglobal doesn't work properly for 'ffu' and 'tsrfu'
Problem: :setglobal doesn't work properly for 'ffu' and 'tsrfu' when
the local value is set (after v9.1.0831)
Solution: Check os_flags instead of buffer option variable (zeertzjq).
closes: vim/vim#15980
6eda269600
This commit is contained in:
@@ -364,7 +364,7 @@ func Test_findfunc()
|
||||
|
||||
" Error cases
|
||||
|
||||
" Function that doesn't any argument
|
||||
" Function that doesn't take any arguments
|
||||
func FindFuncNoArg()
|
||||
endfunc
|
||||
set findfunc=FindFuncNoArg
|
||||
@@ -484,6 +484,41 @@ func Test_findfunc_scriptlocal_func()
|
||||
call assert_equal('abc', g:FindFuncArg)
|
||||
bw!
|
||||
|
||||
new | only
|
||||
set findfunc=
|
||||
setlocal findfunc=NoSuchFunc
|
||||
setglobal findfunc=s:FindFuncScript
|
||||
call assert_equal('NoSuchFunc', &findfunc)
|
||||
call assert_equal('NoSuchFunc', &l:findfunc)
|
||||
call assert_equal(expand('<SID>') .. 'FindFuncScript', &g:findfunc)
|
||||
new | only
|
||||
call assert_equal(expand('<SID>') .. 'FindFuncScript', &findfunc)
|
||||
call assert_equal(expand('<SID>') .. 'FindFuncScript', &g:findfunc)
|
||||
call assert_equal('', &l:findfunc)
|
||||
let g:FindFuncArg = ''
|
||||
find abc
|
||||
call assert_equal('abc', g:FindFuncArg)
|
||||
bw!
|
||||
|
||||
new | only
|
||||
set findfunc=
|
||||
setlocal findfunc=NoSuchFunc
|
||||
set findfunc=s:FindFuncScript
|
||||
call assert_equal(expand('<SID>') .. 'FindFuncScript', &findfunc)
|
||||
call assert_equal(expand('<SID>') .. 'FindFuncScript', &g:findfunc)
|
||||
call assert_equal('', &l:findfunc)
|
||||
let g:FindFuncArg = ''
|
||||
find abc
|
||||
call assert_equal('abc', g:FindFuncArg)
|
||||
new | only
|
||||
call assert_equal(expand('<SID>') .. 'FindFuncScript', &findfunc)
|
||||
call assert_equal(expand('<SID>') .. 'FindFuncScript', &g:findfunc)
|
||||
call assert_equal('', &l:findfunc)
|
||||
let g:FindFuncArg = ''
|
||||
find abc
|
||||
call assert_equal('abc', g:FindFuncArg)
|
||||
bw!
|
||||
|
||||
set findfunc=
|
||||
delfunc s:FindFuncScript
|
||||
endfunc
|
||||
|
@@ -2268,6 +2268,7 @@ func Test_thesaurusfunc_callback()
|
||||
call add(g:TsrFunc3Args, [a:findstart, a:base])
|
||||
return a:findstart ? 0 : []
|
||||
endfunc
|
||||
|
||||
set tsrfu=s:TsrFunc3
|
||||
new
|
||||
call setline(1, 'script1')
|
||||
@@ -2283,6 +2284,46 @@ func Test_thesaurusfunc_callback()
|
||||
call feedkeys("A\<C-X>\<C-T>\<Esc>", 'x')
|
||||
call assert_equal([[1, ''], [0, 'script2']], g:TsrFunc3Args)
|
||||
bw!
|
||||
|
||||
new | only
|
||||
set thesaurusfunc=
|
||||
setlocal thesaurusfunc=NoSuchFunc
|
||||
setglobal thesaurusfunc=s:TsrFunc3
|
||||
call assert_equal('NoSuchFunc', &thesaurusfunc)
|
||||
call assert_equal('NoSuchFunc', &l:thesaurusfunc)
|
||||
call assert_equal('s:TsrFunc3', &g:thesaurusfunc)
|
||||
new | only
|
||||
call assert_equal('s:TsrFunc3', &thesaurusfunc)
|
||||
call assert_equal('s:TsrFunc3', &g:thesaurusfunc)
|
||||
call assert_equal('', &l:thesaurusfunc)
|
||||
call setline(1, 'script1')
|
||||
let g:TsrFunc3Args = []
|
||||
call feedkeys("A\<C-X>\<C-T>\<Esc>", 'x')
|
||||
call assert_equal([[1, ''], [0, 'script1']], g:TsrFunc3Args)
|
||||
bw!
|
||||
|
||||
new | only
|
||||
set thesaurusfunc=
|
||||
setlocal thesaurusfunc=NoSuchFunc
|
||||
set thesaurusfunc=s:TsrFunc3
|
||||
call assert_equal('s:TsrFunc3', &thesaurusfunc)
|
||||
call assert_equal('s:TsrFunc3', &g:thesaurusfunc)
|
||||
call assert_equal('', &l:thesaurusfunc)
|
||||
call setline(1, 'script1')
|
||||
let g:TsrFunc3Args = []
|
||||
call feedkeys("A\<C-X>\<C-T>\<Esc>", 'x')
|
||||
call assert_equal([[1, ''], [0, 'script1']], g:TsrFunc3Args)
|
||||
setlocal bufhidden=wipe
|
||||
new | only!
|
||||
call assert_equal('s:TsrFunc3', &thesaurusfunc)
|
||||
call assert_equal('s:TsrFunc3', &g:thesaurusfunc)
|
||||
call assert_equal('', &l:thesaurusfunc)
|
||||
call setline(1, 'script1')
|
||||
let g:TsrFunc3Args = []
|
||||
call feedkeys("A\<C-X>\<C-T>\<Esc>", 'x')
|
||||
call assert_equal([[1, ''], [0, 'script1']], g:TsrFunc3Args)
|
||||
bw!
|
||||
|
||||
delfunc s:TsrFunc3
|
||||
|
||||
" invalid return value
|
||||
|
Reference in New Issue
Block a user