" Tests for editing the command line. source check.vim source screendump.vim func Test_complete_tab() call writefile(['testfile'], 'Xtestfile') call feedkeys(":e Xtest\t\r", "tx") call assert_equal('testfile', getline(1)) call delete('Xtestfile') endfunc func Test_complete_list() " We can't see the output, but at least we check the code runs properly. call feedkeys(":e test\\r", "tx") call assert_equal('test', expand('%:t')) endfunc func Test_complete_wildmenu() call mkdir('Xdir1/Xdir2', 'p') call writefile(['testfile1'], 'Xdir1/Xtestfile1') call writefile(['testfile2'], 'Xdir1/Xtestfile2') call writefile(['testfile3'], 'Xdir1/Xdir2/Xtestfile3') call writefile(['testfile3'], 'Xdir1/Xdir2/Xtestfile4') set wildmenu " Pressing completes, and moves to next files when pressing again. call feedkeys(":e Xdir1/\\\", 'tx') call assert_equal('testfile1', getline(1)) call feedkeys(":e Xdir1/\\\\", 'tx') call assert_equal('testfile2', getline(1)) " is like but begin with the last match and then go to " previous. call feedkeys(":e Xdir1/Xtest\\", 'tx') call assert_equal('testfile2', getline(1)) call feedkeys(":e Xdir1/Xtest\\\", 'tx') call assert_equal('testfile1', getline(1)) " / to move to previous/next file. call feedkeys(":e Xdir1/\\\", 'tx') call assert_equal('testfile1', getline(1)) call feedkeys(":e Xdir1/\\\\", 'tx') call assert_equal('testfile2', getline(1)) call feedkeys(":e Xdir1/\\\\\", 'tx') call assert_equal('testfile1', getline(1)) " / to go up/down directories. call feedkeys(":e Xdir1/\\\", 'tx') call assert_equal('testfile3', getline(1)) call feedkeys(":e Xdir1/\\\\\", 'tx') call assert_equal('testfile1', getline(1)) " cleanup %bwipe call delete('Xdir1/Xdir2/Xtestfile4') call delete('Xdir1/Xdir2/Xtestfile3') call delete('Xdir1/Xtestfile2') call delete('Xdir1/Xtestfile1') call delete('Xdir1/Xdir2', 'd') call delete('Xdir1', 'd') set nowildmenu endfunc func Test_map_completion() if !has('cmdline_compl') return endif call feedkeys(":map \\"\", 'xt') call assert_equal('"map ', getreg(':')) call feedkeys(":map