From b89e970cfb472af021e56438a5147dd698e66376 Mon Sep 17 00:00:00 2001 From: erw7 Date: Sun, 13 Oct 2019 17:48:01 +0900 Subject: vim-patch 8.1.0085: no test for completing user name and language Problem: No test for completing user name and language. Solution: Add tests. (Dominique Pelle, closes #2978) https://github.com/vim/vim/commit/5f8f2d378a4f6d7db12806f3e35ec6f7fc6bd1f3 --- src/nvim/testdir/test_cmdline.vim | 45 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) (limited to 'src/nvim/testdir/test_cmdline.vim') diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim index e6aafd964b..0a3e6ae625 100644 --- a/src/nvim/testdir/test_cmdline.vim +++ b/src/nvim/testdir/test_cmdline.vim @@ -1,6 +1,5 @@ " Tests for editing the command line. - func Test_complete_tab() call writefile(['testfile'], 'Xtestfile') call feedkeys(":e Xtestf\t\r", "tx") @@ -477,6 +476,50 @@ func Test_cmdline_complete_user_cmd() delcommand Foo endfunc +func Test_cmdline_complete_user_names() + if has('unix') && executable('whoami') + let whoami = systemlist('whoami')[0] + let first_letter = whoami[0] + if len(first_letter) > 0 + " Trying completion of :e ~x where x is the first letter of + " the user name should complete to at least the user name. + call feedkeys(':e ~' . first_letter . "\\\"\", 'tx') + call assert_match('^"e \~.*\<' . whoami . '\>', @:) + endif + endif + if has('win32') + " Just in case: check that the system has an Administrator account. + let names = system('net user') + if names =~ 'Administrator' + " Trying completion of :e ~A should complete to Administrator. + call feedkeys(':e ~A' . "\\\"\", 'tx') + call assert_match('^"e \~Administrator', @:) + endif + endif +endfunc + +funct Test_cmdline_complete_languages() + let lang = substitute(execute('language messages'), '.*"\(.*\)"$', '\1', '') + + call feedkeys(":language \\\"\", 'tx') + call assert_match('^"language .*\.*\.*\', @:) + + if has('unix') + " TODO: these tests don't work on Windows. lang appears to be 'C' + " but C does not appear in the completion. Why? + call assert_match('^"language .*\<' . lang . '\>', @:) + + call feedkeys(":language messages \\\"\", 'tx') + call assert_match('^"language .*\<' . lang . '\>', @:) + + call feedkeys(":language ctype \\\"\", 'tx') + call assert_match('^"language .*\<' . lang . '\>', @:) + + call feedkeys(":language time \\\"\", 'tx') + call assert_match('^"language .*\<' . lang . '\>', @:) + endif +endfunc + func Test_cmdline_write_alternatefile() new call setline('.', ['one', 'two']) -- cgit From 226ad89a2cf46b9a11a38b3236e23bd3e4c9b94a Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Mon, 25 Nov 2019 00:34:52 -0500 Subject: vim-patch:8.1.0223: completing shell command finds sub-directories in $PATH Problem: Completing shell command finds sub-directories in $PATH. Solution: Remove EW_DIR when completing an item in $PATH. (Jason Franklin) https://github.com/vim/vim/commit/6ab9e429da18f4d784222a9f7dfafb7c0218b7eb --- src/nvim/testdir/test_cmdline.vim | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'src/nvim/testdir/test_cmdline.vim') diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim index 0a3e6ae625..19bf9b18aa 100644 --- a/src/nvim/testdir/test_cmdline.vim +++ b/src/nvim/testdir/test_cmdline.vim @@ -301,7 +301,7 @@ func Test_getcompletion() call assert_equal([], l) let l = getcompletion('.', 'shellcmd') - call assert_equal(['./', '../'], l[0:1]) + call assert_equal(['./', '../'], filter(l, 'v:val =~ "\\./"')) call assert_equal(-1, match(l[2:], '^\.\.\?/$')) let root = has('win32') ? 'C:\\' : '/' let l = getcompletion(root, 'shellcmd') @@ -375,6 +375,29 @@ func Test_getcompletion() call assert_fails('call getcompletion("", "burp")', 'E475:') endfunc +func Test_shellcmd_completion() + let save_path = $PATH + + call mkdir('Xpathdir/Xpathsubdir', 'p') + call writefile([''], 'Xpathdir/Xfile.exe') + call setfperm('Xpathdir/Xfile.exe', 'rwx------') + + " Set PATH to example directory without trailing slash. + let $PATH = getcwd() . '/Xpathdir' + + " Test for the ":!" case. Previously, this would include subdirs of + " dirs in the PATH, even though they won't be executed. We check that only + " subdirs of the PWD and executables from the PATH are included in the + " suggestions. + let actual = getcompletion('X', 'shellcmd') + let expected = map(filter(glob('*', 0, 1), 'isdirectory(v:val) && v:val[0] == "X"'), 'v:val . "/"') + call insert(expected, 'Xfile.exe') + call assert_equal(expected, actual) + + call delete('Xpathdir', 'rf') + let $PATH = save_path +endfunc + func Test_expand_star_star() call mkdir('a/b', 'p') call writefile(['asdfasdf'], 'a/b/fileXname') -- cgit From 0ee4df4d96751cb329b4f72df71ee4f6e831ff6d Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Mon, 25 Nov 2019 00:43:28 -0500 Subject: vim-patch:8.1.0836: user completion test can fail on MS-Windows Problem: User completion test can fail on MS-Windows. Solution: Allow for other names befor "Administrator". https://github.com/vim/vim/commit/346d2a359a6874be6cdb683a8d190ba13aa10e94 --- src/nvim/testdir/test_cmdline.vim | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/nvim/testdir/test_cmdline.vim') diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim index 19bf9b18aa..635ee7984a 100644 --- a/src/nvim/testdir/test_cmdline.vim +++ b/src/nvim/testdir/test_cmdline.vim @@ -515,8 +515,9 @@ func Test_cmdline_complete_user_names() let names = system('net user') if names =~ 'Administrator' " Trying completion of :e ~A should complete to Administrator. + " There could be other names starting with "A" before Administrator. call feedkeys(':e ~A' . "\\\"\", 'tx') - call assert_match('^"e \~Administrator', @:) + call assert_match('^"e \~.*Administrator', @:) endif endif endfunc -- cgit From f196ab87a1b5a9da1326d4de883ab7e97a0bb1f0 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Tue, 26 Nov 2019 20:05:52 -0500 Subject: vim-patch:8.1.2348: :const cannot be followed by "| endif" Problem: :const cannot be followed by "| endif". Solution: Check following command for :const. (closes vim/vim#5269) Also fix completion after :const. https://github.com/vim/vim/commit/8f76e6b12b958f2779444a92234bbaf3f49eeb99 --- src/nvim/testdir/test_cmdline.vim | 1 + 1 file changed, 1 insertion(+) (limited to 'src/nvim/testdir/test_cmdline.vim') diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim index 635ee7984a..23784b0308 100644 --- a/src/nvim/testdir/test_cmdline.vim +++ b/src/nvim/testdir/test_cmdline.vim @@ -159,6 +159,7 @@ func Test_expr_completion() endif for cmd in [ \ 'let a = ', + \ 'const a = ', \ 'if', \ 'elseif', \ 'while', -- cgit From 278a0b8df3a70e46228b4f41786c38bbd2d91756 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Tue, 26 Nov 2019 21:54:48 -0500 Subject: vim-patch:8.1.1252: not all mapping completion is tested Problem: Not all mapping completion is tested. Solution: Add a few more mapping completion tests. https://github.com/vim/vim/commit/1776a28e9c7fd0236927f14e9df807e524b30721 --- src/nvim/testdir/test_cmdline.vim | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/nvim/testdir/test_cmdline.vim') diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim index 23784b0308..4a9f1ed19a 100644 --- a/src/nvim/testdir/test_cmdline.vim +++ b/src/nvim/testdir/test_cmdline.vim @@ -78,19 +78,31 @@ func Test_map_completion() call feedkeys(":map \\"\", 'xt') call assert_equal('"map ', getreg(':')) + map x middle + map ,f commaf map ,g commaf + map left + map x shiftleft call feedkeys(":map ,\\\"\", 'xt') call assert_equal('"map ,f', getreg(':')) call feedkeys(":map ,\\\\"\", 'xt') call assert_equal('"map ,g', getreg(':')) + call feedkeys(":map \\"\", 'xt') + call assert_equal('"map ', getreg(':')) + call feedkeys(":map \\\"\", 'xt') + call assert_equal('"map x', getreg(':')) unmap ,f unmap ,g + unmap + unmap x set cpo-=< cpo-=B cpo-=k map left call feedkeys(":map \\"\", 'xt') call assert_equal('"map ', getreg(':')) + call feedkeys(":map \\"\", 'xt') + call assert_equal('"map " set cpo+=< @@ -113,6 +125,9 @@ func Test_map_completion() call assert_equal('"map ', getreg(':')) unmap " set cpo-=k + + unmap x + set cpo&vim endfunc func Test_match_completion() -- cgit From 5ee6c3bd715b0e9c933bad77e7f8bea1ac19c1a1 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Tue, 26 Nov 2019 22:02:26 -0500 Subject: vim-patch:8.1.1253: mapping completion test fails Problem: Mapping completion test fails. Solution: Fix expected output. https://github.com/vim/vim/commit/92b9e60cb5775ebe8949b4e112feb9f8565441e0 --- src/nvim/testdir/test_cmdline.vim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/nvim/testdir/test_cmdline.vim') diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim index 4a9f1ed19a..e76817630b 100644 --- a/src/nvim/testdir/test_cmdline.vim +++ b/src/nvim/testdir/test_cmdline.vim @@ -91,7 +91,7 @@ func Test_map_completion() call feedkeys(":map \\"\", 'xt') call assert_equal('"map ', getreg(':')) call feedkeys(":map \\\"\", 'xt') - call assert_equal('"map x', getreg(':')) + call assert_equal("\"map \", getreg(':')) unmap ,f unmap ,g unmap @@ -102,7 +102,7 @@ func Test_map_completion() call feedkeys(":map \\"\", 'xt') call assert_equal('"map ', getreg(':')) call feedkeys(":map \\"\", 'xt') - call assert_equal('"map ", getreg(':')) unmap " set cpo+=< -- cgit From 006beb73c7734247b4d5d1f25afc18dac28af702 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Tue, 26 Nov 2019 22:06:31 -0500 Subject: vim-patch:8.1.1254: mapping completion contains dead code Problem: Mapping completion contains dead code. Solution: Remove the code. https://github.com/vim/vim/commit/61df0c7996d9acc94267735abc214cb176e63ede --- src/nvim/testdir/test_cmdline.vim | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/nvim/testdir/test_cmdline.vim') diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim index e76817630b..fe3eaba817 100644 --- a/src/nvim/testdir/test_cmdline.vim +++ b/src/nvim/testdir/test_cmdline.vim @@ -107,9 +107,14 @@ func Test_map_completion() " set cpo+=< map left + exe "set t_k6=\[17~" + call feedkeys(":map \[17~x f6x\", 'xt') call feedkeys(":map \\"\", 'xt') call assert_equal('"map ', getreg(':')) + call feedkeys(":map \[17~\\\"\", 'xt') + " call assert_equal("\"map x", getreg(':')) unmap + call feedkeys(":unmap \[17~x\", 'xt') set cpo-=< set cpo+=B -- cgit From 585e3ddfc785abfd0022af4f9c84f13e24c41782 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Tue, 26 Nov 2019 22:08:31 -0500 Subject: vim-patch:8.1.1268: map completion test fails in GUI Problem: Map completion test fails in GUI. Solution: Skip the test that fails. https://github.com/vim/vim/commit/510671a055c2d7a329c88bf133ac302139fd3221 --- src/nvim/testdir/test_cmdline.vim | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/nvim/testdir/test_cmdline.vim') diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim index fe3eaba817..56157bebec 100644 --- a/src/nvim/testdir/test_cmdline.vim +++ b/src/nvim/testdir/test_cmdline.vim @@ -111,8 +111,10 @@ func Test_map_completion() call feedkeys(":map \[17~x f6x\", 'xt') call feedkeys(":map \\"\", 'xt') call assert_equal('"map ', getreg(':')) - call feedkeys(":map \[17~\\\"\", 'xt') - " call assert_equal("\"map x", getreg(':')) + if !has('gui_running') + call feedkeys(":map \[17~\\\"\", 'xt') + " call assert_equal("\"map x", getreg(':')) + endif unmap call feedkeys(":unmap \[17~x\", 'xt') set cpo-=< -- cgit From f33371c03f526ecbe2d6a1bec744fa37c1b2640c Mon Sep 17 00:00:00 2001 From: Daniel Hahler Date: Fri, 29 Nov 2019 18:51:25 +0100 Subject: vim-patch:8.1.2017: cannot execute commands after closing cmdline window #11479 Problem: Cannot execute commands after closing the cmdline window. Solution: Also trigger BufEnter and WinEnter. (closes vim/vim#4762) https://github.com/vim/vim/commit/96e38a86a710fb6daec4550ac1667f019dc3a40e Fixes https://github.com/neovim/neovim/issues/11279. --- src/nvim/testdir/test_cmdline.vim | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) (limited to 'src/nvim/testdir/test_cmdline.vim') diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim index 56157bebec..262ea11eb6 100644 --- a/src/nvim/testdir/test_cmdline.vim +++ b/src/nvim/testdir/test_cmdline.vim @@ -619,6 +619,8 @@ func Check_cmdline(cmdtype) return '' endfunc +set cpo& + func Test_getcmdtype() call feedkeys(":MyCmd a\=Check_cmdline(':')\\", "xt") @@ -659,6 +661,37 @@ func Test_getcmdwintype() call assert_equal('', getcmdwintype()) endfunc +func Test_getcmdwin_autocmd() + let s:seq = [] + augroup CmdWin + au WinEnter * call add(s:seq, 'WinEnter ' .. win_getid()) + au WinLeave * call add(s:seq, 'WinLeave ' .. win_getid()) + au BufEnter * call add(s:seq, 'BufEnter ' .. bufnr()) + au BufLeave * call add(s:seq, 'BufLeave ' .. bufnr()) + au CmdWinEnter * call add(s:seq, 'CmdWinEnter ' .. win_getid()) + au CmdWinLeave * call add(s:seq, 'CmdWinLeave ' .. win_getid()) + + let org_winid = win_getid() + let org_bufnr = bufnr() + call feedkeys("q::let a = getcmdwintype()\:let s:cmd_winid = win_getid()\:let s:cmd_bufnr = bufnr()\:q\", 'x!') + call assert_equal(':', a) + call assert_equal([ + \ 'WinLeave ' .. org_winid, + \ 'WinEnter ' .. s:cmd_winid, + \ 'BufLeave ' .. org_bufnr, + \ 'BufEnter ' .. s:cmd_bufnr, + \ 'CmdWinEnter ' .. s:cmd_winid, + \ 'CmdWinLeave ' .. s:cmd_winid, + \ 'BufLeave ' .. s:cmd_bufnr, + \ 'WinLeave ' .. s:cmd_winid, + \ 'WinEnter ' .. org_winid, + \ 'BufEnter ' .. org_bufnr, + \ ], s:seq) + + au! + augroup END +endfunc + func Test_verbosefile() set verbosefile=Xlog echomsg 'foo' @@ -717,5 +750,3 @@ func Test_cmdline_overstrike() let &encoding = encoding_save endfunc - -set cpo& -- cgit From ed424655bef3169dc5452c5a8212e250dc483f9e Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Thu, 5 Dec 2019 02:04:19 -0500 Subject: vim-patch:8.1.2385: open cmdline window with feedkeys() #11516 Problem: Opening cmdline window with feedkeys() does not work. (Yegappan Lakshmanan) Solution: Recognize K_CMDWIN also when ex_normal_busy is set. https://github.com/vim/vim/commit/85db5475982e166ec5bb1c8c9a5c8bf062d49ed1 --- src/nvim/testdir/test_cmdline.vim | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'src/nvim/testdir/test_cmdline.vim') diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim index 262ea11eb6..9c3c33a943 100644 --- a/src/nvim/testdir/test_cmdline.vim +++ b/src/nvim/testdir/test_cmdline.vim @@ -750,3 +750,8 @@ func Test_cmdline_overstrike() let &encoding = encoding_save endfunc + +func Test_cmdwin_feedkeys() + " This should not generate E488 + call feedkeys("q:\", 'x') +endfunc -- cgit From 978a6bcaf2b98b3c89381a3eacf642b4f61db033 Mon Sep 17 00:00:00 2001 From: Rob Pilling Date: Sun, 22 Mar 2020 21:40:12 +0000 Subject: vim-patch:8.1.2225: the "last used" info of a buffer is under used Problem: The "last used" info of a buffer is under used. Solution: Add "lastused" to getbufinfo(). List buffers sorted by last-used field. (Andi Massimino, closes vim/vim#4722) https://github.com/vim/vim/commit/52410575be50d5c40bbe6380159df48cfc382ceb --- src/nvim/testdir/test_cmdline.vim | 46 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'src/nvim/testdir/test_cmdline.vim') diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim index 9c3c33a943..7f1e1f4456 100644 --- a/src/nvim/testdir/test_cmdline.vim +++ b/src/nvim/testdir/test_cmdline.vim @@ -755,3 +755,49 @@ func Test_cmdwin_feedkeys() " This should not generate E488 call feedkeys("q:\", 'x') endfunc + +func Test_buffers_lastused() + " check that buffers are sorted by time when wildmode has lastused + edit bufc " oldest + + sleep 1200m + enew + edit bufa " middle + + sleep 1200m + enew + edit bufb " newest + + enew + + call assert_equal(['bufc', 'bufa', 'bufb'], + \ getcompletion('', 'buffer')) + + let save_wildmode = &wildmode + set wildmode=full:lastused + + let cap = "\=execute('let X=getcmdline()')\" + call feedkeys(":b \" .. cap .. "\", 'xt') + call assert_equal('b bufb', X) + call feedkeys(":b \\" .. cap .. "\", 'xt') + call assert_equal('b bufa', X) + call feedkeys(":b \\\" .. cap .. "\", 'xt') + call assert_equal('b bufc', X) + enew + + sleep 1200m + edit other + call feedkeys(":b \" .. cap .. "\", 'xt') + call assert_equal('b bufb', X) + call feedkeys(":b \\" .. cap .. "\", 'xt') + call assert_equal('b bufa', X) + call feedkeys(":b \\\" .. cap .. "\", 'xt') + call assert_equal('b bufc', X) + enew + + let &wildmode = save_wildmode + + bwipeout bufa + bwipeout bufb + bwipeout bufc +endfunc -- cgit From a576bf6196a66a0542af82c51e77e51d90a80c67 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Tue, 28 Apr 2020 18:57:11 -0400 Subject: vim-patch:8.2.0648: semicolon search does not work in first line Problem: Semicolon search does not work in first line. Solution: Allow the cursor to be in line zero. (Christian Brabandt, closes vim/vim#5996) https://github.com/vim/vim/commit/0e71704b77a9891ccae9f5a9c7429e933078f232 --- src/nvim/testdir/test_cmdline.vim | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/nvim/testdir/test_cmdline.vim') diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim index 7f1e1f4456..2c7d64f078 100644 --- a/src/nvim/testdir/test_cmdline.vim +++ b/src/nvim/testdir/test_cmdline.vim @@ -801,3 +801,16 @@ func Test_buffers_lastused() bwipeout bufb bwipeout bufc endfunc + +" test that ";" works to find a match at the start of the first line +func Test_zero_line_search() + new + call setline(1, ["1, pattern", "2, ", "3, pattern"]) + call cursor(1,1) + 0;/pattern/d + call assert_equal(["2, ", "3, pattern"], getline(1,'$')) + q! +endfunc + + +" vim: shiftwidth=2 sts=2 expandtab " vim: shiftwidth=2 sts=2 expandtab -- cgit From 9538a7895cb6af2312a39c4c0710ace638309914 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Thu, 4 Jun 2020 21:08:33 -0400 Subject: vim-patch:8.2.0905: test coverage could be better Problem: Test coverage could be better. Solution: Add a couple of tests. (Dominique Pelle, closes vim/vim#6202) https://github.com/vim/vim/commit/e0c3c3d6cbb6f356058f28ecbdf3438411222083 --- src/nvim/testdir/test_cmdline.vim | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/nvim/testdir/test_cmdline.vim') diff --git a/src/nvim/testdir/test_cmdline.vim b/src/nvim/testdir/test_cmdline.vim index 2c7d64f078..f8d84f1a49 100644 --- a/src/nvim/testdir/test_cmdline.vim +++ b/src/nvim/testdir/test_cmdline.vim @@ -692,6 +692,22 @@ func Test_getcmdwin_autocmd() augroup END endfunc +" Test error: "E135: *Filter* Autocommands must not change current buffer" +func Test_cmd_bang_E135() + new + call setline(1, ['a', 'b', 'c', 'd']) + augroup test_cmd_filter_E135 + au! + autocmd FilterReadPost * help + augroup END + call assert_fails('2,3!echo "x"', 'E135:') + + augroup test_cmd_filter_E135 + au! + augroup END + %bwipe! +endfunc + func Test_verbosefile() set verbosefile=Xlog echomsg 'foo' -- cgit