mirror of
https://github.com/neovim/neovim.git
synced 2025-10-01 15:38:33 +00:00
Merge pull request #16194 from seandewar/vim-8.1.1925
vim-patch:7.4.1777,8.1.{1925,1995,2011,2012,2013,2166},8.2.{0532,0871,1168,1241,3576}
This commit is contained in:
@@ -17,7 +17,7 @@ end
|
||||
|
||||
-- Usable with the base key: use the last function argument as the method base.
|
||||
-- Value is from funcs.h file. "BASE_" prefix is omitted.
|
||||
local LAST = "BASE_LAST"
|
||||
-- local LAST = "BASE_LAST" (currently unused after port of v8.2.1168)
|
||||
|
||||
return {
|
||||
funcs={
|
||||
@@ -26,14 +26,14 @@ return {
|
||||
add={args=2, base=1},
|
||||
['and']={args=2, base=1},
|
||||
api_info={},
|
||||
append={args=2, base=LAST},
|
||||
appendbufline={args=3, base=LAST},
|
||||
append={args=2, base=2},
|
||||
appendbufline={args=3, base=3},
|
||||
argc={args={0, 1}},
|
||||
argidx={},
|
||||
arglistid={args={0, 2}},
|
||||
argv={args={0, 2}},
|
||||
asin={args=1, base=1, func="float_op_wrapper", data="&asin"}, -- WJMc
|
||||
assert_beeps={args={1}, base=1},
|
||||
assert_beeps={args=1, base=1},
|
||||
assert_equal={args={2, 3}, base=2},
|
||||
assert_equalfile={args={2, 3}, base=1},
|
||||
assert_exception={args={1, 2}},
|
||||
@@ -41,7 +41,7 @@ return {
|
||||
assert_false={args={1, 2}, base=1},
|
||||
assert_inrange={args={3, 4}, base=3},
|
||||
assert_match={args={2, 3}, base=2},
|
||||
assert_nobeep={args={1}},
|
||||
assert_nobeep={args=1, base=1},
|
||||
assert_notequal={args={2, 3}, base=2},
|
||||
assert_notmatch={args={2, 3}, base=2},
|
||||
assert_report={args=1, base=1},
|
||||
@@ -53,8 +53,8 @@ return {
|
||||
bufadd={args=1, base=1},
|
||||
bufexists={args=1, base=1},
|
||||
buffer_exists={args=1, base=1, func='f_bufexists'}, -- obsolete
|
||||
buffer_name={args={0, 1}, func='f_bufname'}, -- obsolete
|
||||
buffer_number={args={0, 1}, func='f_bufnr'}, -- obsolete
|
||||
buffer_name={args={0, 1}, base=1, func='f_bufname'}, -- obsolete
|
||||
buffer_number={args={0, 1}, base=1, func='f_bufnr'}, -- obsolete
|
||||
buflisted={args=1, base=1},
|
||||
bufload={args=1, base=1},
|
||||
bufloaded={args=1, base=1},
|
||||
@@ -71,7 +71,7 @@ return {
|
||||
chanclose={args={1, 2}},
|
||||
chansend={args=2},
|
||||
char2nr={args={1, 2}, base=1},
|
||||
charidx={args={2, 3}},
|
||||
charidx={args={2, 3}, base=1},
|
||||
chdir={args=1, base=1},
|
||||
cindent={args=1, base=1},
|
||||
clearmatches={args={0, 1}, base=1},
|
||||
@@ -121,7 +121,7 @@ return {
|
||||
filter={args=2, base=1},
|
||||
finddir={args={1, 3}, base=1},
|
||||
findfile={args={1, 3}, base=1},
|
||||
flatten={args={1, 2}},
|
||||
flatten={args={1, 2}, base=1},
|
||||
float2nr={args=1, base=1},
|
||||
floor={args=1, base=1, func="float_op_wrapper", data="&floor"},
|
||||
fmod={args=2, base=1},
|
||||
@@ -137,7 +137,7 @@ return {
|
||||
['function']={args={1, 3}, base=1},
|
||||
garbagecollect={args={0, 1}},
|
||||
get={args={2, 3}, base=1},
|
||||
getbufinfo={args={0, 1}},
|
||||
getbufinfo={args={0, 1}, base=1},
|
||||
getbufline={args={2, 3}, base=1},
|
||||
getbufvar={args={2, 3}, base=1},
|
||||
getchangelist={args={0, 1}, base=1},
|
||||
@@ -152,7 +152,7 @@ return {
|
||||
getcompletion={args={2, 3}, base=1},
|
||||
getcurpos={},
|
||||
getcwd={args={0, 2}, base=1},
|
||||
getenv={args={1}, base=1},
|
||||
getenv={args=1, base=1},
|
||||
getfontname={args={0, 1}},
|
||||
getfperm={args=1, base=1},
|
||||
getfsize={args=1, base=1},
|
||||
@@ -161,7 +161,7 @@ return {
|
||||
getjumplist={args={0, 2}, base=1},
|
||||
getline={args={1, 2}, base=1},
|
||||
getloclist={args={1, 2}},
|
||||
getmarklist={args={0, 1}},
|
||||
getmarklist={args={0, 1}, base=1},
|
||||
getmatches={args={0, 1}},
|
||||
getmousepos={},
|
||||
getpid={},
|
||||
@@ -262,7 +262,7 @@ return {
|
||||
pow={args=2, base=1},
|
||||
prevnonblank={args=1, base=1},
|
||||
printf={args=varargs(1), base=2},
|
||||
prompt_getprompt={args=1},
|
||||
prompt_getprompt={args=1, base=1},
|
||||
prompt_setcallback={args={2, 2}, base=1},
|
||||
prompt_setinterrupt={args={2, 2}, base=1},
|
||||
prompt_setprompt={args={2, 2}, base=1},
|
||||
@@ -291,82 +291,82 @@ return {
|
||||
rpcstart={args={1, 2}},
|
||||
rpcstop={args=1},
|
||||
rubyeval={args=1, base=1},
|
||||
screenattr={args=2},
|
||||
screenchar={args=2},
|
||||
screenchars={args=2},
|
||||
screenattr={args=2, base=1},
|
||||
screenchar={args=2, base=1},
|
||||
screenchars={args=2, base=1},
|
||||
screencol={},
|
||||
screenpos={args=3},
|
||||
screenpos={args=3, base=1},
|
||||
screenrow={},
|
||||
screenstring={args=2},
|
||||
search={args={1, 4}},
|
||||
searchcount={args={0,1}},
|
||||
searchdecl={args={1, 3}},
|
||||
screenstring={args=2, base=1},
|
||||
search={args={1, 4}, base=1},
|
||||
searchcount={args={0, 1}, base=1},
|
||||
searchdecl={args={1, 3}, base=1},
|
||||
searchpair={args={3, 7}},
|
||||
searchpairpos={args={3, 7}},
|
||||
searchpos={args={1, 4}},
|
||||
searchpos={args={1, 4}, base=1},
|
||||
serverlist={},
|
||||
serverstart={args={0, 1}},
|
||||
serverstop={args=1},
|
||||
setbufline={args=3},
|
||||
setbufvar={args=3},
|
||||
setcharsearch={args=1},
|
||||
setcmdpos={args=1},
|
||||
setenv={args=2},
|
||||
setbufline={args=3, base=3},
|
||||
setbufvar={args=3, base=3},
|
||||
setcharsearch={args=1, base=1},
|
||||
setcmdpos={args=1, base=1},
|
||||
setenv={args=2, base=2},
|
||||
setfperm={args=2, base=1},
|
||||
setline={args=2},
|
||||
setloclist={args={2, 4}},
|
||||
setmatches={args={1, 2}},
|
||||
setpos={args=2},
|
||||
setqflist={args={1, 3}},
|
||||
setreg={args={2, 3}},
|
||||
settabvar={args=3},
|
||||
settabwinvar={args=4},
|
||||
settagstack={args={2, 3}},
|
||||
setwinvar={args=3},
|
||||
sha256={args=1},
|
||||
shellescape={args={1, 2}},
|
||||
shiftwidth={args={0, 1}},
|
||||
sign_define={args={1, 2}},
|
||||
sign_getdefined={args={0, 1}},
|
||||
sign_getplaced={args={0, 2}},
|
||||
sign_jump={args={3, 3}},
|
||||
sign_place={args={4, 5}},
|
||||
sign_placelist={args={1}},
|
||||
sign_undefine={args={0, 1}},
|
||||
sign_unplace={args={1, 2}},
|
||||
sign_unplacelist={args={1}},
|
||||
simplify={args=1},
|
||||
setline={args=2, base=2},
|
||||
setloclist={args={2, 4}, base=2},
|
||||
setmatches={args={1, 2}, base=1},
|
||||
setpos={args=2, base=2},
|
||||
setqflist={args={1, 3}, base=1},
|
||||
setreg={args={2, 3}, base=2},
|
||||
settabvar={args=3, base=3},
|
||||
settabwinvar={args=4, base=4},
|
||||
settagstack={args={2, 3}, base=2},
|
||||
setwinvar={args=3, base=3},
|
||||
sha256={args=1, base=1},
|
||||
shellescape={args={1, 2}, base=1},
|
||||
shiftwidth={args={0, 1}, base=1},
|
||||
sign_define={args={1, 2}, base=1},
|
||||
sign_getdefined={args={0, 1}, base=1},
|
||||
sign_getplaced={args={0, 2}, base=1},
|
||||
sign_jump={args=3, base=1},
|
||||
sign_place={args={4, 5}, base=1},
|
||||
sign_placelist={args=1, base=1},
|
||||
sign_undefine={args={0, 1}, base=1},
|
||||
sign_unplace={args={1, 2}, base=1},
|
||||
sign_unplacelist={args=1, base=1},
|
||||
simplify={args=1, base=1},
|
||||
sin={args=1, base=1, func="float_op_wrapper", data="&sin"},
|
||||
sinh={args=1, base=1, func="float_op_wrapper", data="&sinh"},
|
||||
sockconnect={args={2,3}},
|
||||
sort={args={1, 3}, base=1},
|
||||
soundfold={args=1},
|
||||
soundfold={args=1, base=1},
|
||||
stdioopen={args=1},
|
||||
spellbadword={args={0, 1}},
|
||||
spellsuggest={args={1, 3}},
|
||||
spellbadword={args={0, 1}, base=1},
|
||||
spellsuggest={args={1, 3}, base=1},
|
||||
split={args={1, 3}, base=1},
|
||||
sqrt={args=1, base=1, func="float_op_wrapper", data="&sqrt"},
|
||||
stdpath={args=1},
|
||||
str2float={args=1, base=1},
|
||||
str2list={args={1, 2}, base=1},
|
||||
str2nr={args={1, 3}},
|
||||
strcharpart={args={2, 3}},
|
||||
strchars={args={1,2}},
|
||||
strdisplaywidth={args={1, 2}},
|
||||
strftime={args={1, 2}},
|
||||
strgetchar={args={2, 2}},
|
||||
stridx={args={2, 3}},
|
||||
str2nr={args={1, 3}, base=1},
|
||||
strcharpart={args={2, 3}, base=1},
|
||||
strchars={args={1, 2}, base=1},
|
||||
strdisplaywidth={args={1, 2}, base=1},
|
||||
strftime={args={1, 2}, base=1},
|
||||
strgetchar={args=2, base=1},
|
||||
stridx={args={2, 3}, base=1},
|
||||
string={args=1, base=1},
|
||||
strlen={args=1, base=1},
|
||||
strpart={args={2, 4}},
|
||||
strptime={args=2},
|
||||
strridx={args={2, 3}},
|
||||
strpart={args={2, 4}, base=1},
|
||||
strptime={args=2, base=1},
|
||||
strridx={args={2, 3}, base=1},
|
||||
strtrans={args=1, base=1},
|
||||
strwidth={args=1, base=1},
|
||||
submatch={args={1, 2}},
|
||||
submatch={args={1, 2}, base=1},
|
||||
substitute={args=4, base=1},
|
||||
swapinfo={args={1}},
|
||||
swapname={args={1}},
|
||||
swapinfo={args=1, base=1},
|
||||
swapname={args=1, base=1},
|
||||
synID={args=3},
|
||||
synIDattr={args={2, 3}, base=1},
|
||||
synIDtrans={args=1, base=1},
|
||||
@@ -374,58 +374,58 @@ return {
|
||||
synstack={args=2},
|
||||
system={args={1, 2}, base=1},
|
||||
systemlist={args={1, 3}, base=1},
|
||||
tabpagebuflist={args={0, 1}},
|
||||
tabpagebuflist={args={0, 1}, base=1},
|
||||
tabpagenr={args={0, 1}},
|
||||
tabpagewinnr={args={1, 2}},
|
||||
tabpagewinnr={args={1, 2}, base=1},
|
||||
tagfiles={},
|
||||
taglist={args={1, 2}},
|
||||
taglist={args={1, 2}, base=1},
|
||||
tan={args=1, base=1, func="float_op_wrapper", data="&tan"},
|
||||
tanh={args=1, base=1, func="float_op_wrapper", data="&tanh"},
|
||||
tempname={},
|
||||
termopen={args={1, 2}},
|
||||
test_garbagecollect_now={},
|
||||
test_write_list_log={args=1},
|
||||
timer_info={args={0,1}},
|
||||
timer_pause={args=2},
|
||||
timer_start={args={2,3}},
|
||||
timer_stop={args=1},
|
||||
timer_info={args={0, 1}, base=1},
|
||||
timer_pause={args=2, base=1},
|
||||
timer_start={args={2, 3}, base=1},
|
||||
timer_stop={args=1, base=1},
|
||||
timer_stopall={args=0},
|
||||
tolower={args=1},
|
||||
toupper={args=1},
|
||||
tr={args=3},
|
||||
trim={args={1,3}},
|
||||
tolower={args=1, base=1},
|
||||
toupper={args=1, base=1},
|
||||
tr={args=3, base=1},
|
||||
trim={args={1, 3}, base=1},
|
||||
trunc={args=1, base=1, func="float_op_wrapper", data="&trunc"},
|
||||
type={args=1, base=1},
|
||||
undofile={args=1},
|
||||
undofile={args=1, base=1},
|
||||
undotree={},
|
||||
uniq={args={1, 3}, base=1},
|
||||
values={args=1, base=1},
|
||||
virtcol={args=1},
|
||||
virtcol={args=1, base=1},
|
||||
visualmode={args={0, 1}},
|
||||
wait={args={2,3}},
|
||||
wildmenumode={},
|
||||
win_execute={args={2, 3}},
|
||||
win_findbuf={args=1},
|
||||
win_getid={args={0,2}},
|
||||
win_gettype={args={0,1}},
|
||||
win_gotoid={args=1},
|
||||
win_id2tabwin={args=1},
|
||||
win_id2win={args=1},
|
||||
win_screenpos={args=1},
|
||||
win_splitmove={args={2, 3}},
|
||||
win_execute={args={2, 3}, base=2},
|
||||
win_findbuf={args=1, base=1},
|
||||
win_getid={args={0, 2}, base=1},
|
||||
win_gettype={args={0, 1}, base=1},
|
||||
win_gotoid={args=1, base=1},
|
||||
win_id2tabwin={args=1, base=1},
|
||||
win_id2win={args=1, base=1},
|
||||
win_screenpos={args=1, base=1},
|
||||
win_splitmove={args={2, 3}, base=1},
|
||||
winbufnr={args=1, base=1},
|
||||
wincol={},
|
||||
windowsversion={},
|
||||
winheight={args=1},
|
||||
winlayout={args={0, 1}},
|
||||
winheight={args=1, base=1},
|
||||
winlayout={args={0, 1}, base=1},
|
||||
winline={},
|
||||
winnr={args={0, 1}},
|
||||
winnr={args={0, 1}, base=1},
|
||||
winrestcmd={},
|
||||
winrestview={args=1},
|
||||
winrestview={args=1, base=1},
|
||||
winsaveview={},
|
||||
winwidth={args=1},
|
||||
winwidth={args=1, base=1},
|
||||
wordcount={},
|
||||
writefile={args={2, 3}},
|
||||
writefile={args={2, 3}, base=1},
|
||||
xor={args=2, base=1},
|
||||
},
|
||||
}
|
||||
|
@@ -11551,6 +11551,9 @@ static void f_timer_start(typval_T *argvars, typval_T *rettv, FunPtr fptr)
|
||||
dict_T *dict;
|
||||
|
||||
rettv->vval.v_number = -1;
|
||||
if (check_secure()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (argvars[2].v_type != VAR_UNKNOWN) {
|
||||
if (argvars[2].v_type != VAR_DICT
|
||||
|
@@ -526,8 +526,7 @@ func Test_autocmd_blast_badd()
|
||||
|
||||
call writefile(content, 'XblastBall')
|
||||
call system(GetVimCommand() .. ' --clean -S XblastBall')
|
||||
" call assert_match('OK', readfile('Xerrors')->join())
|
||||
call assert_match('OK', join(readfile('Xerrors')))
|
||||
call assert_match('OK', readfile('Xerrors')->join())
|
||||
|
||||
call delete('XblastBall')
|
||||
call delete('Xerrors')
|
||||
|
@@ -432,7 +432,7 @@ func Test_breakindent11_vartabs()
|
||||
call s:test_windows('setl cpo-=n sbr=>> nu nuw=4 nolist briopt= ts=4 vts=4')
|
||||
let text = getline(2)
|
||||
let width = strlen(text[1:]) + 2->indent() + strlen(&sbr) * 3 " text wraps 3 times
|
||||
call assert_equal(width, strdisplaywidth(text))
|
||||
call assert_equal(width, text->strdisplaywidth())
|
||||
call s:close_windows('set sbr= vts&')
|
||||
endfunc
|
||||
|
||||
|
@@ -20,6 +20,9 @@ function Test_getbufwintabinfo()
|
||||
call assert_equal('vim', l[0].variables.editor)
|
||||
call assert_notequal(-1, index(l[0].windows, '%'->bufwinid()))
|
||||
|
||||
let l = '%'->getbufinfo()
|
||||
call assert_equal(bufnr('%'), l[0].bufnr)
|
||||
|
||||
" Test for getbufinfo() with 'bufmodified'
|
||||
call assert_equal(0, len(getbufinfo({'bufmodified' : 1})))
|
||||
call setbufline('Xtestfile1', 1, ["Line1"])
|
||||
@@ -48,7 +51,7 @@ function Test_getbufwintabinfo()
|
||||
tabnew | let w3_id = win_getid()
|
||||
new | let w4_id = win_getid()
|
||||
vert new | let w5_id = win_getid()
|
||||
call setwinvar(0, 'signal', 'green')
|
||||
eval 'green'->setwinvar(0, 'signal')
|
||||
tabfirst
|
||||
let winlist = getwininfo()
|
||||
call assert_equal(5, len(winlist))
|
||||
|
@@ -101,7 +101,7 @@ func Test_chdir_func()
|
||||
call assert_match('^\[global\] .*/Xdir$', trim(execute('verbose pwd')))
|
||||
call chdir('..')
|
||||
call assert_equal('y', fnamemodify(getcwd(1, 2), ':t'))
|
||||
call assert_equal('z', fnamemodify(getcwd(3, 2), ':t'))
|
||||
call assert_equal('z', fnamemodify(3->getcwd(2), ':t'))
|
||||
tabnext | wincmd t
|
||||
call assert_match('^\[tabpage\] .*/y$', trim(execute('verbose pwd')))
|
||||
call chdir('..')
|
||||
|
@@ -20,7 +20,7 @@ func Test_charsearch()
|
||||
" check that setcharsearch() changes the settings.
|
||||
3
|
||||
normal! ylfep
|
||||
call setcharsearch({'char': 'k'})
|
||||
eval {'char': 'k'}->setcharsearch()
|
||||
normal! ;p
|
||||
call setcharsearch({'forward': 0})
|
||||
normal! $;p
|
||||
|
@@ -82,7 +82,7 @@ func Test_client_server()
|
||||
call remote_send(name, ":call server2client(expand('<client>'), 'got it')\<CR>", 'g:myserverid')
|
||||
call assert_equal('got it', g:myserverid->remote_read(2))
|
||||
|
||||
call remote_send(name, ":call server2client(expand('<client>'), 'another')\<CR>", 'g:myserverid')
|
||||
call remote_send(name, ":eval expand('<client>')->server2client('another')\<CR>", 'g:myserverid')
|
||||
let peek_result = 'nothing'
|
||||
let r = g:myserverid->remote_peek('peek_result')
|
||||
" unpredictable whether the result is already available.
|
||||
|
@@ -905,7 +905,7 @@ func Test_setcmdpos()
|
||||
call assert_equal('"12ab', @:)
|
||||
|
||||
" setcmdpos() returns 1 when not editing the command line.
|
||||
call assert_equal(1, setcmdpos(3))
|
||||
call assert_equal(1, 3->setcmdpos())
|
||||
endfunc
|
||||
|
||||
func Test_cmdline_overstrike()
|
||||
|
@@ -38,10 +38,9 @@ func Test_compiler()
|
||||
endfunc
|
||||
|
||||
func GetCompilerNames()
|
||||
" return glob('$VIMRUNTIME/compiler/*.vim', 0, 1)
|
||||
" \ ->map({i, v -> substitute(v, '.*[\\/]\([a-zA-Z0-9_\-]*\).vim', '\1', '')})
|
||||
" \ ->sort()
|
||||
return sort(map(glob('$VIMRUNTIME/compiler/*.vim', 0, 1), {i, v -> substitute(v, '.*[\\/]\([a-zA-Z0-9_\-]*\).vim', '\1', '')}))
|
||||
return glob('$VIMRUNTIME/compiler/*.vim', 0, 1)
|
||||
\ ->map({i, v -> substitute(v, '.*[\\/]\([a-zA-Z0-9_\-]*\).vim', '\1', '')})
|
||||
\ ->sort()
|
||||
endfunc
|
||||
|
||||
func Test_compiler_without_arg()
|
||||
@@ -54,8 +53,7 @@ func Test_compiler_without_arg()
|
||||
endfunc
|
||||
|
||||
func Test_compiler_completion()
|
||||
" let clist = GetCompilerNames()->join(' ')
|
||||
let clist = join(GetCompilerNames(), ' ')
|
||||
let clist = GetCompilerNames()->join(' ')
|
||||
call feedkeys(":compiler \<C-A>\<C-B>\"\<CR>", 'tx')
|
||||
call assert_match('^"compiler ' .. clist .. '$', @:)
|
||||
|
||||
|
@@ -37,7 +37,7 @@ endfunc
|
||||
" Very short version of what matchparen does.
|
||||
function s:Highlight_Matching_Pair()
|
||||
let save_cursor = getcurpos()
|
||||
call setpos('.', save_cursor)
|
||||
eval save_cursor->setpos('.')
|
||||
endfunc
|
||||
|
||||
func Test_curswant_with_autocommand()
|
||||
@@ -82,11 +82,11 @@ func Test_screenpos()
|
||||
call assert_equal({'row': winrow,
|
||||
\ 'col': wincol + 0,
|
||||
\ 'curscol': wincol + 7,
|
||||
\ 'endcol': wincol + 7}, screenpos(winid, 1, 1))
|
||||
\ 'endcol': wincol + 7}, winid->screenpos(1, 1))
|
||||
call assert_equal({'row': winrow,
|
||||
\ 'col': wincol + 13,
|
||||
\ 'curscol': wincol + 13,
|
||||
\ 'endcol': wincol + 13}, screenpos(winid, 1, 7))
|
||||
\ 'endcol': wincol + 13}, winid->screenpos(1, 7))
|
||||
call assert_equal({'row': winrow + 2,
|
||||
\ 'col': wincol + 1,
|
||||
\ 'curscol': wincol + 1,
|
||||
|
@@ -387,7 +387,7 @@ func Test_diffoff()
|
||||
call setline(1, ['One', '', 'Two', 'Three'])
|
||||
diffthis
|
||||
redraw
|
||||
call assert_notequal(normattr, screenattr(1, 1))
|
||||
call assert_notequal(normattr, 1->screenattr(1))
|
||||
diffoff!
|
||||
redraw
|
||||
call assert_equal(normattr, screenattr(1, 1))
|
||||
|
@@ -22,7 +22,7 @@ endfunc
|
||||
|
||||
func Test_setenv()
|
||||
unlet! $TESTENV
|
||||
call setenv('TEST ENV', 'foo')
|
||||
eval 'foo'->setenv('TEST ENV')
|
||||
call assert_equal('foo', getenv('TEST ENV'))
|
||||
call setenv('TEST ENV', v:null)
|
||||
call assert_equal(v:null, getenv('TEST ENV'))
|
||||
|
@@ -99,7 +99,7 @@ func Test_win_execute()
|
||||
if has('textprop')
|
||||
let popupwin = popup_create('the popup win', {'line': 2, 'col': 3})
|
||||
redraw
|
||||
let line = win_execute(popupwin, 'echo getline(1)')
|
||||
let line = 'echo getline(1)'->win_execute(popupwin)
|
||||
call assert_match('the popup win', line)
|
||||
|
||||
call popup_close(popupwin)
|
||||
|
@@ -56,7 +56,7 @@ endfunc
|
||||
|
||||
func Test_strgetchar()
|
||||
call assert_equal(char2nr('a'), strgetchar('axb', 0))
|
||||
call assert_equal(char2nr('x'), strgetchar('axb', 1))
|
||||
call assert_equal(char2nr('x'), 'axb'->strgetchar(1))
|
||||
call assert_equal(char2nr('b'), strgetchar('axb', 2))
|
||||
|
||||
call assert_equal(-1, strgetchar('axb', -1))
|
||||
@@ -66,7 +66,7 @@ endfunc
|
||||
|
||||
func Test_strcharpart()
|
||||
call assert_equal('a', strcharpart('axb', 0, 1))
|
||||
call assert_equal('x', strcharpart('axb', 1, 1))
|
||||
call assert_equal('x', 'axb'->strcharpart(1, 1))
|
||||
call assert_equal('b', strcharpart('axb', 2, 1))
|
||||
call assert_equal('xb', strcharpart('axb', 1))
|
||||
|
||||
@@ -493,7 +493,7 @@ func Test_setmatches()
|
||||
let set[0]['conceal'] = 5
|
||||
let exp[0]['conceal'] = '5'
|
||||
endif
|
||||
call setmatches(set)
|
||||
eval set->setmatches()
|
||||
call assert_equal(exp, getmatches())
|
||||
endfunc
|
||||
|
||||
|
@@ -809,8 +809,7 @@ func Test_undo_fold_deletion()
|
||||
g/"/d
|
||||
undo
|
||||
redo
|
||||
" eval getline(1, '$')->assert_equal([''])
|
||||
eval assert_equal(getline(1, '$'), [''])
|
||||
eval getline(1, '$')->assert_equal([''])
|
||||
|
||||
set fdm&vim
|
||||
bwipe!
|
||||
|
@@ -143,7 +143,7 @@ func Test_str2nr()
|
||||
call assert_equal(-123456789, str2nr('-123456789'))
|
||||
|
||||
call assert_equal(5, str2nr('101', 2))
|
||||
call assert_equal(5, str2nr('0b101', 2))
|
||||
call assert_equal(5, '0b101'->str2nr(2))
|
||||
call assert_equal(5, str2nr('0B101', 2))
|
||||
call assert_equal(-5, str2nr('-101', 2))
|
||||
call assert_equal(-5, str2nr('-0b101', 2))
|
||||
@@ -200,7 +200,7 @@ func Test_strftime()
|
||||
" of strftime() can be 17 or 18, depending on timezone.
|
||||
call assert_match('^2017-01-1[78]$', strftime('%Y-%m-%d', 1484695512))
|
||||
"
|
||||
call assert_match('^\d\d\d\d-\(0\d\|1[012]\)-\([012]\d\|3[01]\) \([01]\d\|2[0-3]\):[0-5]\d:\([0-5]\d\|60\)$', strftime('%Y-%m-%d %H:%M:%S'))
|
||||
call assert_match('^\d\d\d\d-\(0\d\|1[012]\)-\([012]\d\|3[01]\) \([01]\d\|2[0-3]\):[0-5]\d:\([0-5]\d\|60\)$', '%Y-%m-%d %H:%M:%S'->strftime())
|
||||
|
||||
call assert_fails('call strftime([])', 'E730:')
|
||||
call assert_fails('call strftime("%Y", [])', 'E745:')
|
||||
@@ -307,13 +307,19 @@ func Test_resolve_unix()
|
||||
call assert_equal('/', resolve('/'))
|
||||
endfunc
|
||||
|
||||
func s:normalize_fname(fname)
|
||||
let ret = substitute(a:fname, '\', '/', 'g')
|
||||
let ret = substitute(ret, '//', '/', 'g')
|
||||
return ret->tolower()
|
||||
endfunc
|
||||
|
||||
func Test_simplify()
|
||||
call assert_equal('', simplify(''))
|
||||
call assert_equal('/', simplify('/'))
|
||||
call assert_equal('/', simplify('/.'))
|
||||
call assert_equal('/', simplify('/..'))
|
||||
call assert_equal('/...', simplify('/...'))
|
||||
call assert_equal('./dir/file', simplify('./dir/file'))
|
||||
call assert_equal('./dir/file', './dir/file'->simplify())
|
||||
call assert_equal('./dir/file', simplify('.///dir//file'))
|
||||
call assert_equal('./dir/file', simplify('./dir/./file'))
|
||||
call assert_equal('./file', simplify('./dir/../file'))
|
||||
@@ -346,7 +352,7 @@ func Test_setbufvar_options()
|
||||
wincmd h
|
||||
let wh = winheight(0)
|
||||
let dummy_buf = bufnr('dummy_buf2', v:true)
|
||||
call setbufvar(dummy_buf, '&buftype', 'nofile')
|
||||
eval 'nofile'->setbufvar(dummy_buf, '&buftype')
|
||||
execute 'belowright vertical split #' . dummy_buf
|
||||
call assert_equal(wh, winheight(0))
|
||||
|
||||
@@ -375,7 +381,7 @@ endfunc
|
||||
func Test_strpart()
|
||||
call assert_equal('de', strpart('abcdefg', 3, 2))
|
||||
call assert_equal('ab', strpart('abcdefg', -2, 4))
|
||||
call assert_equal('abcdefg', strpart('abcdefg', -2))
|
||||
call assert_equal('abcdefg', 'abcdefg'->strpart(-2))
|
||||
call assert_equal('fg', strpart('abcdefg', 5, 4))
|
||||
call assert_equal('defg', strpart('abcdefg', 3))
|
||||
|
||||
@@ -469,7 +475,7 @@ func Test_toupper()
|
||||
\ toupper(' !"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'))
|
||||
|
||||
" Test with a few lowercase diacritics.
|
||||
call assert_equal("AÀÁÂÃÄÅĀĂĄǍǞǠẢ", toupper("aàáâãäåāăąǎǟǡả"))
|
||||
call assert_equal("AÀÁÂÃÄÅĀĂĄǍǞǠẢ", "aàáâãäåāăąǎǟǡả"->toupper())
|
||||
call assert_equal("BḂḆ", toupper("bḃḇ"))
|
||||
call assert_equal("CÇĆĈĊČ", toupper("cçćĉċč"))
|
||||
call assert_equal("DĎĐḊḎḐ", toupper("dďđḋḏḑ"))
|
||||
@@ -532,6 +538,11 @@ func Test_toupper()
|
||||
call toupper("123\xC0\x80\xC0")
|
||||
endfunc
|
||||
|
||||
func Test_tr()
|
||||
call assert_equal('foo', tr('bar', 'bar', 'foo'))
|
||||
call assert_equal('zxy', 'cab'->tr('abc', 'xyz'))
|
||||
endfunc
|
||||
|
||||
" Tests for the mode() function
|
||||
let current_modes = ''
|
||||
func Save_mode()
|
||||
@@ -809,11 +820,11 @@ endfunc
|
||||
func Test_stridx()
|
||||
call assert_equal(-1, stridx('', 'l'))
|
||||
call assert_equal(0, stridx('', ''))
|
||||
call assert_equal(0, stridx('hello', ''))
|
||||
call assert_equal(0, 'hello'->stridx(''))
|
||||
call assert_equal(-1, stridx('hello', 'L'))
|
||||
call assert_equal(2, stridx('hello', 'l', -1))
|
||||
call assert_equal(2, stridx('hello', 'l', 0))
|
||||
call assert_equal(2, stridx('hello', 'l', 1))
|
||||
call assert_equal(2, 'hello'->stridx('l', 1))
|
||||
call assert_equal(3, stridx('hello', 'l', 3))
|
||||
call assert_equal(-1, stridx('hello', 'l', 4))
|
||||
call assert_equal(-1, stridx('hello', 'l', 10))
|
||||
@@ -826,7 +837,7 @@ func Test_strridx()
|
||||
call assert_equal(0, strridx('', ''))
|
||||
call assert_equal(5, strridx('hello', ''))
|
||||
call assert_equal(-1, strridx('hello', 'L'))
|
||||
call assert_equal(3, strridx('hello', 'l'))
|
||||
call assert_equal(3, 'hello'->strridx('l'))
|
||||
call assert_equal(3, strridx('hello', 'l', 10))
|
||||
call assert_equal(3, strridx('hello', 'l', 3))
|
||||
call assert_equal(2, strridx('hello', 'l', 2))
|
||||
@@ -1219,7 +1230,7 @@ func Test_shellescape()
|
||||
let save_shell = &shell
|
||||
set shell=bash
|
||||
call assert_equal("'text'", shellescape('text'))
|
||||
call assert_equal("'te\"xt'", shellescape('te"xt'))
|
||||
call assert_equal("'te\"xt'", 'te"xt'->shellescape())
|
||||
call assert_equal("'te'\\''xt'", shellescape("te'xt"))
|
||||
|
||||
call assert_equal("'te%xt'", shellescape("te%xt"))
|
||||
@@ -1293,7 +1304,7 @@ endfunc
|
||||
|
||||
func Test_trim()
|
||||
call assert_equal("Testing", trim(" \t\r\r\x0BTesting \t\n\r\n\t\x0B\x0B"))
|
||||
call assert_equal("Testing", trim(" \t \r\r\n\n\x0BTesting \t\n\r\n\t\x0B\x0B"))
|
||||
call assert_equal("Testing", " \t \r\r\n\n\x0BTesting \t\n\r\n\t\x0B\x0B"->trim())
|
||||
call assert_equal("RESERVE", trim("xyz \twwRESERVEzyww \t\t", " wxyz\t"))
|
||||
call assert_equal("wRE \tSERVEzyww", trim("wRE \tSERVEzyww"))
|
||||
call assert_equal("abcd\t xxxx tail", trim(" \tabcd\t xxxx tail"))
|
||||
@@ -1330,7 +1341,7 @@ func Test_func_range_with_edit()
|
||||
" is invalid in that buffer.
|
||||
call writefile(['just one line'], 'Xfuncrange2')
|
||||
new
|
||||
call setline(1, 10->range())
|
||||
eval 10->range()->setline(1)
|
||||
write Xfuncrange1
|
||||
call assert_fails('5,8call EditAnotherFile()', 'E16:')
|
||||
|
||||
@@ -1560,7 +1571,7 @@ func Test_bufadd_bufload()
|
||||
call assert_equal([''], getbufline(buf, 1, '$'))
|
||||
|
||||
let curbuf = bufnr('')
|
||||
call writefile(['some', 'text'], 'XotherName')
|
||||
eval ['some', 'text']->writefile('XotherName')
|
||||
let buf = 'XotherName'->bufadd()
|
||||
call assert_notequal(0, buf)
|
||||
eval 'XotherName'->bufexists()->assert_equal(1)
|
||||
|
@@ -25,7 +25,7 @@ func Test_listchars()
|
||||
redraw!
|
||||
for i in range(1, 5)
|
||||
call cursor(i, 1)
|
||||
call assert_equal([expected[i - 1]], ScreenLines(i, virtcol('$')))
|
||||
call assert_equal([expected[i - 1]], ScreenLines(i, '$'->virtcol()))
|
||||
endfor
|
||||
|
||||
set listchars-=trail:<
|
||||
|
@@ -227,7 +227,7 @@ func Test_getmarklist()
|
||||
call cursor(2, 2)
|
||||
normal mr
|
||||
call assert_equal({'mark' : "'r", 'pos' : [bufnr(), 2, 2, 0]},
|
||||
\ getmarklist(bufnr())[0])
|
||||
call assert_equal([], getmarklist({}))
|
||||
\ bufnr()->getmarklist()[0])
|
||||
call assert_equal([], {}->getmarklist())
|
||||
close!
|
||||
endfunc
|
||||
|
@@ -6,7 +6,7 @@ endif
|
||||
function! s:screenline(lnum) abort
|
||||
let line = []
|
||||
for c in range(1, winwidth(0))
|
||||
call add(line, nr2char(screenchar(a:lnum, c)))
|
||||
call add(line, nr2char(a:lnum->screenchar(c)))
|
||||
endfor
|
||||
return s:trim(join(line, ''))
|
||||
endfunction
|
||||
|
@@ -87,7 +87,7 @@ func Test_echoerr()
|
||||
if has('float')
|
||||
call assert_equal("\n1.23 IgNoRe", execute(':echoerr 1.23 "IgNoRe"'))
|
||||
endif
|
||||
call test_ignore_error('<lambda>')
|
||||
eval '<lambda>'->test_ignore_error()
|
||||
call assert_match("function('<lambda>\\d*')", execute(':echoerr {-> 1234}'))
|
||||
call test_ignore_error('RESET')
|
||||
endfunc
|
||||
|
@@ -156,8 +156,7 @@ func Test_mksession_zero_winheight()
|
||||
wincmd _
|
||||
mksession! Xtest_mks_zero
|
||||
set winminheight&
|
||||
" let text = readfile('Xtest_mks_zero')->join()
|
||||
let text = join(readfile('Xtest_mks_zero'))
|
||||
let text = readfile('Xtest_mks_zero')->join()
|
||||
call delete('Xtest_mks_zero')
|
||||
close
|
||||
" check there is no divide by zero
|
||||
|
@@ -235,8 +235,7 @@ func Test_set_completion()
|
||||
call feedkeys(":set filetype=sshdconfi\<Tab>\<C-B>\"\<CR>", 'xt')
|
||||
call assert_equal('"set filetype=sshdconfig', @:)
|
||||
call feedkeys(":set filetype=a\<C-A>\<C-B>\"\<CR>", 'xt')
|
||||
" call assert_equal('"set filetype=' .. getcompletion('a*', 'filetype')->join(), @:)
|
||||
call assert_equal('"set filetype=' .. join(getcompletion('a*', 'filetype')), @:)
|
||||
call assert_equal('"set filetype=' .. getcompletion('a*', 'filetype')->join(), @:)
|
||||
endfunc
|
||||
|
||||
func Test_set_errors()
|
||||
|
@@ -165,9 +165,7 @@ func Test_prompt_buffer_getbufinfo()
|
||||
call assert_equal('This is a test: ', prompt_getprompt('%'))
|
||||
|
||||
call prompt_setprompt( bufnr( '%' ), '' )
|
||||
" Nvim doesn't support method call syntax yet.
|
||||
" call assert_equal('', '%'->prompt_getprompt())
|
||||
call assert_equal('', prompt_getprompt('%'))
|
||||
call assert_equal('', '%'->prompt_getprompt())
|
||||
|
||||
call prompt_setprompt( bufnr( '%' ), 'Another: ' )
|
||||
call assert_equal('Another: ', prompt_getprompt('%'))
|
||||
|
@@ -39,7 +39,7 @@ func Test_put_lines()
|
||||
call assert_equal(['Line 3', '', 'Line 1', 'Line2'], getline(1, '$'))
|
||||
" clean up
|
||||
bw!
|
||||
call setreg('a', a[0], a[1])
|
||||
eval a[0]->setreg('a', a[1])
|
||||
endfunc
|
||||
|
||||
func Test_put_expr()
|
||||
|
@@ -811,7 +811,7 @@ func Test_locationlist()
|
||||
" NOTE: problem 1:
|
||||
" intentionally not setting 'lnum' so that the quickfix entries are not
|
||||
" valid
|
||||
call setloclist(0, qflist, ' ')
|
||||
eval qflist->setloclist(0, ' ')
|
||||
endfor
|
||||
|
||||
" Test A
|
||||
@@ -1699,7 +1699,7 @@ endfunc
|
||||
|
||||
func Test_setqflist_invalid_nr()
|
||||
" The following command used to crash Vim
|
||||
call setqflist([], ' ', {'nr' : $XXX_DOES_NOT_EXIST})
|
||||
eval []->setqflist(' ', {'nr' : $XXX_DOES_NOT_EXIST})
|
||||
endfunc
|
||||
|
||||
func Test_setqflist_user_sets_buftype()
|
||||
|
@@ -60,7 +60,7 @@ func Test_ruby_set_cursor()
|
||||
" Check that movement after setting cursor position keeps current column.
|
||||
normal j
|
||||
call assert_equal([2, 6], [line('.'), col('.')])
|
||||
call assert_equal([2, 5], rubyeval('$curwin.cursor'))
|
||||
call assert_equal([2, 5], '$curwin.cursor'->rubyeval())
|
||||
|
||||
" call assert_fails('ruby $curwin.cursor = [1]',
|
||||
" \ 'ArgumentError: array length must be 2')
|
||||
|
@@ -1315,7 +1315,7 @@ func Test_search_match_at_curpos()
|
||||
|
||||
normal gg
|
||||
|
||||
call search('foobar', 'c')
|
||||
eval 'foobar'->search('c')
|
||||
call assert_equal([1, 1], [line('.'), col('.')])
|
||||
|
||||
normal j
|
||||
@@ -1354,6 +1354,41 @@ func Test_search_display_pattern()
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func Test_searchdecl()
|
||||
let lines =<< trim END
|
||||
int global;
|
||||
|
||||
func()
|
||||
{
|
||||
int global;
|
||||
if (cond) {
|
||||
int local;
|
||||
}
|
||||
int local;
|
||||
// comment
|
||||
}
|
||||
END
|
||||
new
|
||||
call setline(1, lines)
|
||||
10
|
||||
call assert_equal(0, searchdecl('local', 0, 0))
|
||||
call assert_equal(7, getcurpos()[1])
|
||||
|
||||
10
|
||||
call assert_equal(0, 'local'->searchdecl(0, 1))
|
||||
call assert_equal(9, getcurpos()[1])
|
||||
|
||||
10
|
||||
call assert_equal(0, searchdecl('global'))
|
||||
call assert_equal(5, getcurpos()[1])
|
||||
|
||||
10
|
||||
call assert_equal(0, searchdecl('global', 1))
|
||||
call assert_equal(1, getcurpos()[1])
|
||||
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
func Test_search_special()
|
||||
" this was causing illegal memory access and an endless loop
|
||||
set t_PE=
|
||||
|
@@ -6,17 +6,17 @@ endif
|
||||
|
||||
function Test_sha256()
|
||||
" test for empty string:
|
||||
call assert_equal(sha256(""), 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855')
|
||||
call assert_equal('e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855', sha256(""))
|
||||
|
||||
"'test for 1 char:
|
||||
call assert_equal(sha256("a"), 'ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb')
|
||||
call assert_equal('ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb', sha256("a"))
|
||||
"
|
||||
"test for 3 chars:
|
||||
call assert_equal(sha256("abc"), 'ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad')
|
||||
call assert_equal('ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad', "abc"->sha256())
|
||||
|
||||
" test for contains meta char:
|
||||
call assert_equal(sha256("foo\nbar"), '807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776')
|
||||
call assert_equal('807eff6267f3f926a21d234f7b0cf867a86f47e07a532f15e8cc39ed110ca776', sha256("foo\nbar"))
|
||||
|
||||
" test for contains non-ascii char:
|
||||
call assert_equal(sha256("\xde\xad\xbe\xef"), '5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953')
|
||||
call assert_equal('5f78c33274e43fa9de5659265c1d917e25c03722dcb0b8d27db8d5feaa813953', sha256("\xde\xad\xbe\xef"))
|
||||
endfunction
|
||||
|
@@ -393,7 +393,7 @@ func Test_sign_funcs()
|
||||
|
||||
" Tests for sign_define()
|
||||
let attr = {'text' : '=>', 'linehl' : 'Search', 'texthl' : 'Error'}
|
||||
call assert_equal(0, sign_define("sign1", attr))
|
||||
call assert_equal(0, "sign1"->sign_define(attr))
|
||||
call assert_equal([{'name' : 'sign1', 'texthl' : 'Error',
|
||||
\ 'linehl' : 'Search', 'text' : '=>'}], sign_getdefined())
|
||||
|
||||
@@ -404,13 +404,13 @@ func Test_sign_funcs()
|
||||
call Sign_define_ignore_error("sign2", attr)
|
||||
call assert_equal([{'name' : 'sign2', 'texthl' : 'DiffChange',
|
||||
\ 'linehl' : 'DiffAdd', 'text' : '!!', 'icon' : 'sign2.ico'}],
|
||||
\ sign_getdefined("sign2"))
|
||||
\ "sign2"->sign_getdefined())
|
||||
|
||||
" Test for a sign name with digits
|
||||
call assert_equal(0, sign_define(0002, {'linehl' : 'StatusLine'}))
|
||||
call assert_equal([{'name' : '2', 'linehl' : 'StatusLine'}],
|
||||
\ sign_getdefined(0002))
|
||||
call sign_undefine(0002)
|
||||
eval 0002->sign_undefine()
|
||||
|
||||
" Tests for invalid arguments to sign_define()
|
||||
call assert_fails('call sign_define("sign4", {"text" : "===>"})', 'E239:')
|
||||
@@ -434,7 +434,7 @@ func Test_sign_funcs()
|
||||
call assert_equal([{'bufnr' : bufnr(''), 'signs' :
|
||||
\ [{'id' : 10, 'group' : '', 'lnum' : 20, 'name' : 'sign1',
|
||||
\ 'priority' : 10}]}],
|
||||
\ sign_getplaced('%', {'lnum' : 20}))
|
||||
\ '%'->sign_getplaced({'lnum' : 20}))
|
||||
call assert_equal([{'bufnr' : bufnr(''), 'signs' :
|
||||
\ [{'id' : 10, 'group' : '', 'lnum' : 20, 'name' : 'sign1',
|
||||
\ 'priority' : 10}]}],
|
||||
@@ -490,10 +490,10 @@ func Test_sign_funcs()
|
||||
\ 'E745:')
|
||||
|
||||
" Tests for sign_unplace()
|
||||
call sign_place(20, '', 'sign2', 'Xsign', {"lnum" : 30})
|
||||
eval 20->sign_place('', 'sign2', 'Xsign', {"lnum" : 30})
|
||||
call assert_equal(0, sign_unplace('',
|
||||
\ {'id' : 20, 'buffer' : 'Xsign'}))
|
||||
call assert_equal(-1, sign_unplace('',
|
||||
call assert_equal(-1, ''->sign_unplace(
|
||||
\ {'id' : 30, 'buffer' : 'Xsign'}))
|
||||
call sign_place(20, '', 'sign2', 'Xsign', {"lnum" : 30})
|
||||
call assert_fails("call sign_unplace('',
|
||||
@@ -1693,7 +1693,7 @@ func Test_sign_jump_func()
|
||||
let r = sign_jump(5, '', 'foo')
|
||||
call assert_equal(2, r)
|
||||
call assert_equal(2, line('.'))
|
||||
let r = sign_jump(6, 'g1', 'foo')
|
||||
let r = 6->sign_jump('g1', 'foo')
|
||||
call assert_equal(5, r)
|
||||
call assert_equal(5, line('.'))
|
||||
let r = sign_jump(5, '', 'bar')
|
||||
@@ -1921,8 +1921,7 @@ func Test_sign_funcs_multi()
|
||||
\ 'group' : 'g1', 'priority' : 10}], s[0].signs)
|
||||
|
||||
" Change an existing sign without specifying the group
|
||||
call assert_equal([5], sign_placelist([
|
||||
\ {'id' : 5, 'name' : 'sign1', 'buffer' : 'Xsign'}]))
|
||||
call assert_equal([5], [{'id' : 5, 'name' : 'sign1', 'buffer' : 'Xsign'}]->sign_placelist())
|
||||
let s = sign_getplaced('Xsign', {'id' : 5, 'group' : ''})
|
||||
call assert_equal([{'id' : 5, 'name' : 'sign1', 'lnum' : 11,
|
||||
\ 'group' : '', 'priority' : 10}], s[0].signs)
|
||||
@@ -1955,7 +1954,7 @@ func Test_sign_funcs_multi()
|
||||
\ {'id' : 1, 'group' : 'g1'}, {'id' : 1, 'group' : 'g2'}]))
|
||||
|
||||
" Invalid arguments
|
||||
call assert_equal([], sign_unplacelist([]))
|
||||
call assert_equal([], []->sign_unplacelist())
|
||||
call assert_fails('call sign_unplacelist({})', "E714:")
|
||||
call assert_fails('call sign_unplacelist([[]])', "E715:")
|
||||
call assert_fails('call sign_unplacelist(["abc"])', "E715:")
|
||||
|
@@ -77,7 +77,7 @@ func Test_spellbadword()
|
||||
set spell
|
||||
|
||||
call assert_equal(['bycycle', 'bad'], spellbadword('My bycycle.'))
|
||||
call assert_equal(['another', 'caps'], spellbadword('A sentence. another sentence'))
|
||||
call assert_equal(['another', 'caps'], 'A sentence. another sentence'->spellbadword())
|
||||
|
||||
call assert_equal(['TheCamelWord', 'bad'], spellbadword('TheCamelWord asdf'))
|
||||
set spelloptions=camel
|
||||
@@ -407,7 +407,7 @@ func Test_zz_basic()
|
||||
\ )
|
||||
|
||||
call assert_equal("gebletegek", soundfold('goobledygoook'))
|
||||
call assert_equal("kepereneven", soundfold('kóopërÿnôven'))
|
||||
call assert_equal("kepereneven", 'kóopërÿnôven'->soundfold())
|
||||
call assert_equal("everles gesvets etele", soundfold('oeverloos gezwets edale'))
|
||||
endfunc
|
||||
|
||||
@@ -711,7 +711,7 @@ func TestGoodBadBase()
|
||||
break
|
||||
endif
|
||||
let prevbad = bad
|
||||
let lst = spellsuggest(bad, 3)
|
||||
let lst = bad->spellsuggest(3)
|
||||
normal mm
|
||||
|
||||
call add(result, [bad, lst])
|
||||
|
@@ -512,8 +512,7 @@ func TestGoodBadBase()
|
||||
break
|
||||
endif
|
||||
let prevbad = bad
|
||||
" let lst = bad->spellsuggest(3)
|
||||
let lst = spellsuggest(bad, 3)
|
||||
let lst = bad->spellsuggest(3)
|
||||
normal mm
|
||||
|
||||
call add(result, [bad, lst])
|
||||
@@ -552,8 +551,7 @@ func Test_spell_basic()
|
||||
\ )
|
||||
|
||||
call assert_equal("gebletegek", soundfold('goobledygoook'))
|
||||
" call assert_equal("kepereneven", 'kóopërÿnôven'->soundfold())
|
||||
call assert_equal("kepereneven", soundfold('kóopërÿnôven'))
|
||||
call assert_equal("kepereneven", 'kóopërÿnôven'->soundfold())
|
||||
call assert_equal("everles gesvets etele", soundfold('oeverloos gezwets edale'))
|
||||
endfunc
|
||||
|
||||
|
@@ -905,15 +905,13 @@ func Test_not_a_term()
|
||||
" This will take 2 seconds because of the missing --not-a-term
|
||||
let cmd = GetVimProg() .. ' --cmd quit ' .. redir
|
||||
exe "silent !" . cmd
|
||||
" call assert_match("\<Esc>", readfile('Xvimout')->join())
|
||||
call assert_match("\<Esc>", join(readfile('Xvimout')))
|
||||
call assert_match("\<Esc>", readfile('Xvimout')->join())
|
||||
call delete('Xvimout')
|
||||
|
||||
" With --not-a-term there are no escape sequences.
|
||||
let cmd = GetVimProg() .. ' --not-a-term --cmd quit ' .. redir
|
||||
exe "silent !" . cmd
|
||||
" call assert_notmatch("\<Esc>", readfile('Xvimout')->join())
|
||||
call assert_notmatch("\<Esc>", join(readfile('Xvimout')))
|
||||
call assert_notmatch("\<Esc>", readfile('Xvimout')->join())
|
||||
call delete('Xvimout')
|
||||
endfunc
|
||||
|
||||
|
@@ -547,7 +547,7 @@ func Test_sub_replace_5()
|
||||
\ substitute('A123456789',
|
||||
\ 'A\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)\(.\)',
|
||||
\ '\=string([submatch(0, 1), submatch(9, 1), ' .
|
||||
\ 'submatch(8, 1), submatch(7, 1), submatch(6, 1), ' .
|
||||
\ 'submatch(8, 1), 7->submatch(1), submatch(6, 1), ' .
|
||||
\ 'submatch(5, 1), submatch(4, 1), submatch(3, 1), ' .
|
||||
\ 'submatch(2, 1), submatch(1, 1)])',
|
||||
\ ''))
|
||||
@@ -752,8 +752,7 @@ endfunc
|
||||
func Test_submatch_list_concatenate()
|
||||
let pat = 'A\(.\)'
|
||||
let Rep = {-> string([submatch(0, 1)] + [[submatch(1)]])}
|
||||
" call substitute('A1', pat, Rep, '')->assert_equal("[['A1'], ['1']]")
|
||||
call assert_equal(substitute('A1', pat, Rep, ''), "[['A1'], ['1']]")
|
||||
call substitute('A1', pat, Rep, '')->assert_equal("[['A1'], ['1']]")
|
||||
endfunc
|
||||
|
||||
func Test_substitute_skipped_range()
|
||||
|
@@ -113,7 +113,7 @@ func Test_swapinfo()
|
||||
w
|
||||
let fname = s:swapname()
|
||||
call assert_match('Xswapinfo', fname)
|
||||
let info = swapinfo(fname)
|
||||
let info = fname->swapinfo()
|
||||
|
||||
let ver = printf('VIM %d.%d', v:version / 100, v:version % 100)
|
||||
call assert_equal(ver, info.version)
|
||||
@@ -155,7 +155,7 @@ func Test_swapname()
|
||||
let buf = bufnr('%')
|
||||
let expected = s:swapname()
|
||||
wincmd p
|
||||
call assert_equal(expected, swapname(buf))
|
||||
call assert_equal(expected, buf->swapname())
|
||||
|
||||
new Xtest3
|
||||
setlocal noswapfile
|
||||
|
@@ -30,23 +30,17 @@ func AssertHighlightGroups(lnum, startcol, expected, trans = 1, msg = "")
|
||||
" If groups are provided as a string, each character is assumed to be a
|
||||
" group and spaces represent no group, useful for visually describing tests.
|
||||
let l:expectedGroups = type(a:expected) == v:t_string
|
||||
"\ ? a:expected->split('\zs')->map({_, v -> trim(v)})
|
||||
\ ? map(split(a:expected, '\zs'), {_, v -> trim(v)})
|
||||
\ ? a:expected->split('\zs')->map({_, v -> trim(v)})
|
||||
\ : a:expected
|
||||
let l:errors = 0
|
||||
" let l:msg = (a:msg->empty() ? "" : a:msg .. ": ")
|
||||
let l:msg = (empty(a:msg) ? "" : a:msg .. ": ")
|
||||
let l:msg = (a:msg->empty() ? "" : a:msg .. ": ")
|
||||
\ .. "Wrong highlight group at " .. a:lnum .. ","
|
||||
|
||||
" for l:i in range(a:startcol, a:startcol + l:expectedGroups->len() - 1)
|
||||
" let l:errors += synID(a:lnum, l:i, a:trans)
|
||||
" \ ->synIDattr("name")
|
||||
" \ ->assert_equal(l:expectedGroups[l:i - 1],
|
||||
for l:i in range(a:startcol, a:startcol + len(l:expectedGroups) - 1)
|
||||
let l:errors +=
|
||||
\ assert_equal(synIDattr(synID(a:lnum, l:i, a:trans), "name"),
|
||||
\ l:expectedGroups[l:i - 1],
|
||||
\ l:msg .. l:i)
|
||||
for l:i in range(a:startcol, a:startcol + l:expectedGroups->len() - 1)
|
||||
let l:errors += synID(a:lnum, l:i, a:trans)
|
||||
\ ->synIDattr("name")
|
||||
\ ->assert_equal(l:expectedGroups[l:i - 1],
|
||||
\ l:msg .. l:i)
|
||||
endfor
|
||||
endfunc
|
||||
|
||||
|
@@ -121,8 +121,7 @@ func Test_system_with_shell_quote()
|
||||
let msg = printf('shell=%s shellxquote=%s', &shell, &shellxquote)
|
||||
|
||||
try
|
||||
" let out = 'echo 123'->system()
|
||||
let out = system('echo 123')
|
||||
let out = 'echo 123'->system()
|
||||
catch
|
||||
call assert_report(printf('%s: %s', msg, v:exception))
|
||||
continue
|
||||
|
@@ -35,7 +35,7 @@ function Test_tabpage()
|
||||
tabnew
|
||||
tabfirst
|
||||
call settabvar(2, 'val_num', 100)
|
||||
call settabvar(2, 'val_str', 'SetTabVar test')
|
||||
eval 'SetTabVar test'->settabvar(2, 'val_str')
|
||||
call settabvar(2, 'val_list', ['red', 'blue', 'green'])
|
||||
"
|
||||
call assert_true(gettabvar(2, 'val_num') == 100 && gettabvar(2, 'val_str') == 'SetTabVar test' && gettabvar(2, 'val_list') == ['red', 'blue', 'green'])
|
||||
@@ -184,7 +184,7 @@ function Test_tabpage_with_autocmd()
|
||||
let s:li = split(join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')), '\s\+')
|
||||
call assert_equal(['a', 'a'], s:li)
|
||||
let s:li = []
|
||||
C call map(copy(winr), 'settabwinvar('.tabn.', v:val, ''a'', v:val*2)')
|
||||
C call map(copy(winr), '(v:val*2)->settabwinvar(' .. tabn .. ', v:val, ''a'')')
|
||||
let s:li = split(join(map(copy(winr), 'gettabwinvar('.tabn.', v:val, "a")')), '\s\+')
|
||||
call assert_equal(['2', '4'], s:li)
|
||||
|
||||
|
@@ -351,7 +351,7 @@ func Test_getsettagstack()
|
||||
" Try to set current index to invalid values
|
||||
call settagstack(1, {'curidx' : -1})
|
||||
call assert_equal(1, gettagstack().curidx)
|
||||
call settagstack(1, {'curidx' : 50})
|
||||
eval {'curidx' : 50}->settagstack(1)
|
||||
call assert_equal(4, gettagstack().curidx)
|
||||
|
||||
" Try pushing invalid items onto the stack
|
||||
|
@@ -14,7 +14,7 @@ func Test_taglist()
|
||||
split Xtext
|
||||
|
||||
call assert_equal(['FFoo', 'BFoo'], map(taglist("Foo"), {i, v -> v.name}))
|
||||
call assert_equal(['FFoo', 'BFoo'], map(taglist("Foo", "Xtext"), {i, v -> v.name}))
|
||||
call assert_equal(['FFoo', 'BFoo'], map("Foo"->taglist("Xtext"), {i, v -> v.name}))
|
||||
call assert_equal(['FFoo', 'BFoo'], map(taglist("Foo", "Xfoo"), {i, v -> v.name}))
|
||||
call assert_equal(['BFoo', 'FFoo'], map(taglist("Foo", "Xbar"), {i, v -> v.name}))
|
||||
|
||||
|
@@ -77,7 +77,7 @@ endfunc
|
||||
|
||||
func Test_info()
|
||||
let id = timer_start(1000, 'MyHandler')
|
||||
let info = timer_info(id)
|
||||
let info = id->timer_info()
|
||||
call assert_equal(id, info[0]['id'])
|
||||
call assert_equal(1000, info[0]['time'])
|
||||
call assert_equal("function('MyHandler')", string(info[0]['callback']))
|
||||
@@ -113,7 +113,7 @@ func Test_paused()
|
||||
let info = timer_info(id)
|
||||
call assert_equal(0, info[0]['paused'])
|
||||
|
||||
call timer_pause(id, 1)
|
||||
eval id->timer_pause(1)
|
||||
let info = timer_info(id)
|
||||
call assert_equal(1, info[0]['paused'])
|
||||
sleep 200m
|
||||
@@ -148,7 +148,7 @@ func Test_delete_myself()
|
||||
endfunc
|
||||
|
||||
func StopTimer1(timer)
|
||||
let g:timer2 = timer_start(10, 'StopTimer2')
|
||||
let g:timer2 = 10->timer_start('StopTimer2')
|
||||
" avoid maxfuncdepth error
|
||||
call timer_pause(g:timer1, 1)
|
||||
sleep 40m
|
||||
@@ -239,7 +239,7 @@ func FeedAndPeek(timer)
|
||||
endfunc
|
||||
|
||||
func Interrupt(timer)
|
||||
" call test_feedinput("\<C-C>")
|
||||
" eval "\<C-C>"->test_feedinput()
|
||||
call nvim_input("\<C-C>")
|
||||
endfunc
|
||||
|
||||
@@ -251,7 +251,7 @@ func Test_peek_and_get_char()
|
||||
let intr = timer_start(100, 'Interrupt')
|
||||
let c = getchar()
|
||||
call assert_equal(char2nr('a'), c)
|
||||
call timer_stop(intr)
|
||||
eval intr->timer_stop()
|
||||
endfunc
|
||||
|
||||
func Test_getchar_zero()
|
||||
|
@@ -490,7 +490,7 @@ funct Test_undofile()
|
||||
call delete('Xundodir', 'd')
|
||||
|
||||
" Test undofile() with 'undodir' set to a non-existing directory.
|
||||
" call assert_equal('', undofile('Xundofoo'))
|
||||
" call assert_equal('', 'Xundofoo'->undofile())
|
||||
|
||||
if isdirectory('/tmp')
|
||||
set undodir=/tmp
|
||||
|
@@ -17,7 +17,7 @@ func Test_strchars()
|
||||
let exp = [[1, 1, 1], [3, 3, 3], [2, 2, 1], [3, 3, 1], [1, 1, 1]]
|
||||
for i in range(len(inp))
|
||||
call assert_equal(exp[i][0], strchars(inp[i]))
|
||||
call assert_equal(exp[i][1], strchars(inp[i], 0))
|
||||
call assert_equal(exp[i][1], inp[i]->strchars(0))
|
||||
call assert_equal(exp[i][2], strchars(inp[i], 1))
|
||||
endfor
|
||||
endfunc
|
||||
@@ -69,7 +69,7 @@ func Test_screenchar_utf8()
|
||||
call setline(1, ["ABC\u0308"])
|
||||
redraw
|
||||
call assert_equal([0x0041], screenchars(1, 1))
|
||||
call assert_equal([0x0042], screenchars(1, 2))
|
||||
call assert_equal([0x0042], 1->screenchars(2))
|
||||
call assert_equal([0x0043, 0x0308], screenchars(1, 3))
|
||||
call assert_equal("A", screenstring(1, 1))
|
||||
call assert_equal("B", screenstring(1, 2))
|
||||
|
@@ -330,7 +330,7 @@ func Test_vartabs_shiftwidth()
|
||||
let lines = ScreenLines([1, 2], winwidth(0))
|
||||
call s:compare_lines(expect2, lines)
|
||||
call assert_equal(20, shiftwidth(virtcol('.')-2))
|
||||
call assert_equal(30, shiftwidth(virtcol('.')))
|
||||
call assert_equal(30, virtcol('.')->shiftwidth())
|
||||
norm! $>>
|
||||
let expect3 = [' ', ' x ', '~ ']
|
||||
let lines = ScreenLines([1, 3], winwidth(0))
|
||||
|
@@ -72,7 +72,7 @@ endfunc
|
||||
func Test_window_quit()
|
||||
e Xa
|
||||
split Xb
|
||||
call assert_equal(2, winnr('$'))
|
||||
call assert_equal(2, '$'->winnr())
|
||||
call assert_equal('Xb', bufname(winbufnr(1)))
|
||||
call assert_equal('Xa', bufname(winbufnr(2)))
|
||||
|
||||
@@ -88,7 +88,7 @@ func Test_window_horizontal_split()
|
||||
3wincmd s
|
||||
call assert_equal(2, winnr('$'))
|
||||
call assert_equal(3, winheight(0))
|
||||
call assert_equal(winwidth(1), winwidth(2))
|
||||
call assert_equal(winwidth(1), 2->winwidth())
|
||||
|
||||
call assert_fails('botright topleft wincmd s', 'E442:')
|
||||
bw
|
||||
@@ -267,7 +267,7 @@ func Test_window_height()
|
||||
|
||||
wincmd +
|
||||
call assert_equal(wh1, winheight(1))
|
||||
call assert_equal(wh2, winheight(2))
|
||||
call assert_equal(wh2, 2->winheight())
|
||||
|
||||
2wincmd _
|
||||
call assert_equal(2, winheight(1))
|
||||
@@ -452,7 +452,7 @@ func Test_window_newtab()
|
||||
wincmd T
|
||||
call assert_equal(2, tabpagenr('$'))
|
||||
call assert_equal(['Xb', 'Xa'], map(tabpagebuflist(1), 'bufname(v:val)'))
|
||||
call assert_equal(['Xc' ], map(tabpagebuflist(2), 'bufname(v:val)'))
|
||||
call assert_equal(['Xc' ], map(2->tabpagebuflist(), 'bufname(v:val)'))
|
||||
|
||||
%bw!
|
||||
endfunc
|
||||
@@ -577,8 +577,11 @@ endfunc
|
||||
|
||||
function! Fun_RenewFile()
|
||||
" Need to wait a bit for the timestamp to be older.
|
||||
sleep 2
|
||||
silent execute '!echo "1" > tmp.txt'
|
||||
let old_ftime = getftime("tmp.txt")
|
||||
while getftime("tmp.txt") == old_ftime
|
||||
sleep 100m
|
||||
silent execute '!echo "1" > tmp.txt'
|
||||
endwhile
|
||||
sp
|
||||
wincmd p
|
||||
edit! tmp.txt
|
||||
@@ -814,13 +817,25 @@ func Test_winnr()
|
||||
|
||||
tabnew
|
||||
call assert_equal(8, tabpagewinnr(1, 'j'))
|
||||
call assert_equal(2, tabpagewinnr(1, 'k'))
|
||||
call assert_equal(2, 1->tabpagewinnr('k'))
|
||||
call assert_equal(4, tabpagewinnr(1, 'h'))
|
||||
call assert_equal(6, tabpagewinnr(1, 'l'))
|
||||
|
||||
only | tabonly
|
||||
endfunc
|
||||
|
||||
func Test_winrestview()
|
||||
split runtest.vim
|
||||
normal 50%
|
||||
let view = winsaveview()
|
||||
close
|
||||
split runtest.vim
|
||||
eval view->winrestview()
|
||||
call assert_equal(view, winsaveview())
|
||||
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
func Test_win_splitmove()
|
||||
edit a
|
||||
leftabove split b
|
||||
|
@@ -67,7 +67,7 @@ func Test_win_getid()
|
||||
|
||||
call win_gotoid(id2)
|
||||
call assert_equal("two", expand("%"))
|
||||
call win_gotoid(id4)
|
||||
eval id4->win_gotoid()
|
||||
call assert_equal("four", expand("%"))
|
||||
call win_gotoid(id1)
|
||||
call assert_equal("one", expand("%"))
|
||||
@@ -75,17 +75,17 @@ func Test_win_getid()
|
||||
call assert_equal("five", expand("%"))
|
||||
|
||||
call assert_equal(0, win_id2win(9999))
|
||||
call assert_equal(nr5, win_id2win(id5))
|
||||
call assert_equal(nr5, id5->win_id2win())
|
||||
call assert_equal(0, win_id2win(id1))
|
||||
tabnext
|
||||
call assert_equal(nr1, win_id2win(id1))
|
||||
|
||||
call assert_equal([0, 0], win_id2tabwin(9999))
|
||||
call assert_equal([1, nr2], win_id2tabwin(id2))
|
||||
call assert_equal([1, nr2], id2->win_id2tabwin())
|
||||
call assert_equal([2, nr4], win_id2tabwin(id4))
|
||||
|
||||
call assert_equal([], win_findbuf(9999))
|
||||
call assert_equal([id2], win_findbuf(bufnr2))
|
||||
call assert_equal([id2], bufnr2->win_findbuf())
|
||||
call win_gotoid(id5)
|
||||
split
|
||||
call assert_equal(sort([id5, win_getid()]), sort(win_findbuf(bufnr5)))
|
||||
@@ -98,7 +98,7 @@ func Test_win_getid_curtab()
|
||||
tabfirst
|
||||
copen
|
||||
only
|
||||
call assert_equal(win_getid(1), win_getid(1, 1))
|
||||
call assert_equal(win_getid(1), 1->win_getid( 1))
|
||||
tabclose!
|
||||
endfunc
|
||||
|
||||
@@ -120,4 +120,11 @@ func Test_winlayout()
|
||||
call assert_equal(['col', [['leaf', w3], ['row', [['leaf', w4], ['leaf', w2]]], ['leaf', w1]]], winlayout())
|
||||
|
||||
only!
|
||||
|
||||
let w1 = win_getid()
|
||||
call assert_equal(['leaf', w1], winlayout(1))
|
||||
tabnew
|
||||
let w2 = win_getid()
|
||||
call assert_equal(['leaf', w2], 2->winlayout())
|
||||
tabclose
|
||||
endfunc
|
||||
|
Reference in New Issue
Block a user