Mercurial > vim
view src/testdir/test_virtualedit.vim @ 14350:142c0083b3b8 v8.1.0190
patch 8.1.0190: Perl refcounts are wrong
commit https://github.com/vim/vim/commit/18c4f1badbc96d39de5b348f268ac8d55c2b0b67
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Jul 16 17:45:38 2018 +0200
patch 8.1.0190: Perl refcounts are wrong
Problem: Perl refcounts are wrong.
Solution: Improve refcounting. Add a test. (Damien)
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 16 Jul 2018 18:00:07 +0200 |
parents | 12bdbf9f7e20 |
children | 2dcaa860e3fc |
line wrap: on
line source
" Tests for 'virtualedit'. func Test_yank_move_change() new call setline(1, [ \ "func foo() error {", \ "\tif n, err := bar();", \ "\terr != nil {", \ "\t\treturn err", \ "\t}", \ "\tn = n * n", \ ]) set virtualedit=all set ts=4 function! MoveSelectionDown(count) abort normal! m` silent! exe "'<,'>move'>+".a:count norm! `` endfunction xmap ]e :<C-U>call MoveSelectionDown(v:count1)<CR> 2 normal 2gg normal J normal jVj normal ]e normal ce bwipe! set virtualedit= set ts=8 endfunc func Test_paste_end_of_line() new set virtualedit=all call setline(1, ['456', '123']) normal! gg0"ay$ exe "normal! 2G$lllA\<C-O>:normal! \"agP\r" call assert_equal('123456', getline(2)) bwipe! set virtualedit= endfunc func Test_replace_end_of_line() new set virtualedit=all call setline(1, range(20)) exe "normal! gg2jv10lr-" call assert_equal(["1", "-----------", "3"], getline(2,4)) if has('multi_byte') call setline(1, range(20)) exe "normal! gg2jv10lr\<c-k>hh" call assert_equal(["1", "───────────", "3"], getline(2,4)) endif bwipe! set virtualedit= endfunc func Test_edit_CTRL_G() new set virtualedit=insert call setline(1, ['123', '1', '12']) exe "normal! ggA\<c-g>jx\<c-g>jx" call assert_equal(['123', '1 x', '12 x'], getline(1,'$')) set virtualedit=all %d_ call setline(1, ['1', '12']) exe "normal! ggllix\<c-g>jx" call assert_equal(['1 x', '12x'], getline(1,'$')) bwipe! set virtualedit= endfunc