mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Merge #15680 fix(eval): add the vimscript-1 feature to has()
This commit is contained in:
commit
2d81f19279
@ -4403,6 +4403,7 @@ static void f_has(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
|||||||
"user_commands",
|
"user_commands",
|
||||||
"vartabs",
|
"vartabs",
|
||||||
"vertsplit",
|
"vertsplit",
|
||||||
|
"vimscript-1",
|
||||||
"virtualedit",
|
"virtualedit",
|
||||||
"visual",
|
"visual",
|
||||||
"visualextra",
|
"visualextra",
|
||||||
|
@ -12,6 +12,48 @@ func Test_catch_return_with_error()
|
|||||||
call assert_equal(1, s:foo())
|
call assert_equal(1, s:foo())
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_nocatch_restore_silent_emsg()
|
||||||
|
silent! try
|
||||||
|
throw 1
|
||||||
|
catch
|
||||||
|
endtry
|
||||||
|
echoerr 'wrong'
|
||||||
|
let c1 = nr2char(screenchar(&lines, 1))
|
||||||
|
let c2 = nr2char(screenchar(&lines, 2))
|
||||||
|
let c3 = nr2char(screenchar(&lines, 3))
|
||||||
|
let c4 = nr2char(screenchar(&lines, 4))
|
||||||
|
let c5 = nr2char(screenchar(&lines, 5))
|
||||||
|
call assert_equal('wrong', c1 . c2 . c3 . c4 . c5)
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Test_mkdir_p()
|
||||||
|
call mkdir('Xmkdir/nested', 'p')
|
||||||
|
call assert_true(isdirectory('Xmkdir/nested'))
|
||||||
|
try
|
||||||
|
" Trying to make existing directories doesn't error
|
||||||
|
call mkdir('Xmkdir', 'p')
|
||||||
|
call mkdir('Xmkdir/nested', 'p')
|
||||||
|
catch /E739:/
|
||||||
|
call assert_report('mkdir(..., "p") failed for an existing directory')
|
||||||
|
endtry
|
||||||
|
" 'p' doesn't suppress real errors
|
||||||
|
call writefile([], 'Xfile')
|
||||||
|
call assert_fails('call mkdir("Xfile", "p")', 'E739')
|
||||||
|
call delete('Xfile')
|
||||||
|
call delete('Xmkdir', 'rf')
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Test_line_continuation()
|
||||||
|
let array = [5,
|
||||||
|
"\ ignore this
|
||||||
|
\ 6,
|
||||||
|
"\ more to ignore
|
||||||
|
"\ more moreto ignore
|
||||||
|
\ ]
|
||||||
|
"\ and some more
|
||||||
|
call assert_equal([5, 6], array)
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_E963()
|
func Test_E963()
|
||||||
" These commands used to cause an internal error prior to vim 8.1.0563
|
" These commands used to cause an internal error prior to vim 8.1.0563
|
||||||
let v_e = v:errors
|
let v_e = v:errors
|
||||||
@ -51,32 +93,11 @@ func Test_readfile_binary()
|
|||||||
call delete('XReadfile')
|
call delete('XReadfile')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Test_mkdir_p()
|
func Test_let_errmsg()
|
||||||
call mkdir('Xmkdir/nested', 'p')
|
call assert_fails('let v:errmsg = []', 'E730:')
|
||||||
call assert_true(isdirectory('Xmkdir/nested'))
|
let v:errmsg = ''
|
||||||
try
|
call assert_fails('let v:errmsg = []', 'E730:')
|
||||||
" Trying to make existing directories doesn't error
|
let v:errmsg = ''
|
||||||
call mkdir('Xmkdir', 'p')
|
|
||||||
call mkdir('Xmkdir/nested', 'p')
|
|
||||||
catch /E739:/
|
|
||||||
call assert_report('mkdir(..., "p") failed for an existing directory')
|
|
||||||
endtry
|
|
||||||
" 'p' doesn't suppress real errors
|
|
||||||
call writefile([], 'Xfile')
|
|
||||||
call assert_fails('call mkdir("Xfile", "p")', 'E739')
|
|
||||||
call delete('Xfile')
|
|
||||||
call delete('Xmkdir', 'rf')
|
|
||||||
endfunc
|
|
||||||
|
|
||||||
func Test_line_continuation()
|
|
||||||
let array = [5,
|
|
||||||
"\ ignore this
|
|
||||||
\ 6,
|
|
||||||
"\ more to ignore
|
|
||||||
"\ more moreto ignore
|
|
||||||
\ ]
|
|
||||||
"\ and some more
|
|
||||||
call assert_equal([5, 6], array)
|
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Test_string_concatenation()
|
func Test_string_concatenation()
|
||||||
@ -117,25 +138,29 @@ func Test_skip_after_throw()
|
|||||||
endtry
|
endtry
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Test_nocatch_restore_silent_emsg()
|
" scriptversion 1
|
||||||
silent! try
|
func Test_string_concat_scriptversion1()
|
||||||
throw 1
|
call assert_true(has('vimscript-1'))
|
||||||
catch
|
let a = 'a'
|
||||||
endtry
|
let b = 'b'
|
||||||
echoerr 'wrong'
|
|
||||||
let c1 = nr2char(screenchar(&lines, 1))
|
echo a . b
|
||||||
let c2 = nr2char(screenchar(&lines, 2))
|
let a .= b
|
||||||
let c3 = nr2char(screenchar(&lines, 3))
|
let vers = 1.2.3
|
||||||
let c4 = nr2char(screenchar(&lines, 4))
|
call assert_equal('123', vers)
|
||||||
let c5 = nr2char(screenchar(&lines, 5))
|
|
||||||
call assert_equal('wrong', c1 . c2 . c3 . c4 . c5)
|
if has('float')
|
||||||
|
call assert_fails('let f = .5', 'E15:')
|
||||||
|
endif
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Test_let_errmsg()
|
" scriptversion 1
|
||||||
call assert_fails('let v:errmsg = []', 'E730:')
|
func Test_vvar_scriptversion1()
|
||||||
let v:errmsg = ''
|
call assert_equal(15, 017)
|
||||||
call assert_fails('let v:errmsg = []', 'E730:')
|
call assert_equal(15, 0o17)
|
||||||
let v:errmsg = ''
|
call assert_equal(15, 0O17)
|
||||||
|
call assert_equal(18, 018)
|
||||||
|
call assert_equal(511, 0o777)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func Test_number_max_min_size()
|
func Test_number_max_min_size()
|
||||||
|
Loading…
Reference in New Issue
Block a user