" Test commands that are not compiled in a :def function
source check.vim
source vim9.vim
source term_util.vim
source view_util.vim
def Test_vim9cmd()
var lines =<< trim END
vim9cmd var x = 123
let s:y = 'yes'
vim9c assert_equal(123, x)
vim9cm assert_equal('yes', y)
END
CheckScriptSuccess(lines)
assert_fails('vim9cmd', 'E1164:')
lines =<< trim END
vim9script
def Foo()
g:found_bar = "bar"
enddef
nmap ,; :vim9cmd <SID>Foo()<CR>
END
CheckScriptSuccess(lines)
feedkeys(',;', 'xt')
assert_equal("bar", g:found_bar)
nunmap ,;
unlet g:found_bar
enddef
def Test_edit_wildcards()
var filename = 'Xtest'
edit `=filename`
assert_equal('Xtest', bufname())
var filenr = 123
edit Xtest`=filenr`
assert_equal('Xtest123', bufname())
filenr = 77
edit `=filename``=filenr`
assert_equal('Xtest77', bufname())
edit X`=filename`xx`=filenr`yy
assert_equal('XXtestxx77yy', bufname())
CheckDefFailure(['edit `=xxx`'], 'E1001:')
CheckDefFailure(['edit `="foo"'], 'E1083:')
var files = ['file 1', 'file%2', 'file# 3']
args `=files`
assert_equal(files, argv())
enddef
def Test_expand_alternate_file()
var lines =<< trim END
edit Xfileone
var bone = bufnr()
edit Xfiletwo
var btwo = bufnr()
edit Xfilethree
var bthree = bufnr()
edit #
assert_equal(bthree, bufnr())
edit %%
assert_equal(btwo, bufnr())
edit %% # comment
assert_equal(bthree, bufnr())
edit %%yy
assert_equal('Xfiletwoyy', bufname())
exe "edit %%" .. bone
assert_equal(bone, bufnr())
exe "edit %%" .. btwo .. "xx"
assert_equal('Xfiletwoxx', bufname())
next Xfileone Xfiletwo Xfilethree
assert_equal('Xfileone', argv(0))
assert_equal('Xfiletwo', argv(1))
assert_equal('Xfilethree', argv(2))
next %%%zz
assert_equal('Xfileone', argv(0))
assert_equal('Xfiletwo', argv(1))
assert_equal('Xfilethreezz', argv(2))
v:oldfiles = ['Xonefile', 'Xtwofile']
edit %%<1
assert_equal('Xonefile', bufname())
edit %%<2
assert_equal('Xtwofile', bufname())
assert_fails('edit %%<3', 'E684:')
edit Xfileone.vim
edit Xfiletwo
edit %%:r
assert_equal('Xfileone', bufname())
assert_false(bufexists('altfoo'))
edit altfoo
edit bar
assert_true(bufexists('altfoo'))
assert_true(buflisted('altfoo'))
bdel %%
assert_true(bufexists('altfoo'))
assert_false(buflisted('altfoo'))
bwipe! altfoo
bwipe! bar
END
CheckDefAndScriptSuccess(lines