To: vim_dev@googlegroups.com Subject: Patch 8.2.2916 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.2916 Problem: Operators are not fully tested. Solution: Add a few more tests. (Yegappan Lakshmanan, closes #8290) Files: src/ops.c, src/testdir/test_netbeans.vim, src/testdir/test_normal.vim, src/testdir/test_visual.vim *** ../vim-8.2.2915/src/ops.c 2021-05-18 21:46:27.712961269 +0200 --- src/ops.c 2021-05-31 19:19:18.579926605 +0200 *************** *** 2383,2391 **** #ifdef FEAT_NETBEANS_INTG if (netbeans_active() && one_change) { ! char_u *ptr = ml_get_buf(curbuf, pos.lnum, FALSE); netbeans_removed(curbuf, pos.lnum, pos.col, (long)length); netbeans_inserted(curbuf, pos.lnum, pos.col, &ptr[pos.col], length); } --- 2383,2392 ---- #ifdef FEAT_NETBEANS_INTG if (netbeans_active() && one_change) { ! char_u *ptr; netbeans_removed(curbuf, pos.lnum, pos.col, (long)length); + ptr = ml_get_buf(curbuf, pos.lnum, FALSE); netbeans_inserted(curbuf, pos.lnum, pos.col, &ptr[pos.col], length); } *** ../vim-8.2.2915/src/testdir/test_netbeans.vim 2020-12-18 19:49:52.345571854 +0100 --- src/testdir/test_netbeans.vim 2021-05-31 19:19:18.579926605 +0200 *************** *** 367,372 **** --- 367,412 ---- call assert_match('2:insert=\d\+ 26 "\t"', l[-1]) let g:last += 18 + " Test for changing case of multiple lines using ~ + normal ggVG~ + call WaitFor('len(ReadXnetbeans()) >= (g:last + 6)') + let l = ReadXnetbeans() + call assert_match('2:remove=\d\+ 0 8', l[-6]) + call assert_match('2:insert=\d\+ 0 "FOO BAR2"', l[-5]) + call assert_match('2:remove=\d\+ 9 8', l[-4]) + call assert_match('2:insert=\d\+ 9 "BLUE SKy"', l[-3]) + call assert_match('2:remove=\d\+ 18 9', l[-2]) + call assert_match('2:insert=\d\+ 18 "\tFOO BAR3"', l[-1]) + let g:last += 6 + + " Test for changing case of a visual block using ~ + exe "normal ggw\$~" + call WaitFor('len(ReadXnetbeans()) >= (g:last + 2)') + let l = ReadXnetbeans() + call assert_match('2:remove=\d\+ 4 4', l[-2]) + call assert_match('2:insert=\d\+ 4 "bar2"', l[-1]) + let g:last += 2 + + " Increment a number using in visual mode + exe "normal! gg$v6\" + call WaitFor('len(ReadXnetbeans()) >= (g:last + 6)') + let l = ReadXnetbeans() + call assert_match('2:remove=\d\+ 0 9', l[-4]) + call assert_match('2:insert=\d\+ 0 "FOO bar8"', l[-3]) + call assert_match('2:remove=\d\+ 7 1', l[-2]) + call assert_match('2:insert=\d\+ 7 "8"', l[-1]) + let g:last += 6 + + " Decrement a number using in visual mode + exe "normal! gg$v3\" + call WaitFor('len(ReadXnetbeans()) >= (g:last + 6)') + let l = ReadXnetbeans() + call assert_match('2:remove=\d\+ 0 9', l[-4]) + call assert_match('2:insert=\d\+ 0 "FOO bar5"', l[-3]) + call assert_match('2:remove=\d\+ 7 1', l[-2]) + call assert_match('2:insert=\d\+ 7 "5"', l[-1]) + let g:last += 6 + " stopDocumentListen test call appendbufline(cmdbufnr, '$', 'stopDocumentListen_Test') call WaitFor('len(ReadXnetbeans()) >= (g:last + 3)') *** ../vim-8.2.2915/src/testdir/test_normal.vim 2021-05-30 22:17:21.035457554 +0200 --- src/testdir/test_normal.vim 2021-05-31 19:19:18.579926605 +0200 *************** *** 3377,3380 **** --- 3377,3410 ---- bw! endfunc + " Some commands like yy, cc, dd, >>, << and !! accept a count after + " typing the first letter of the command. + func Test_normal_count_after_operator() + new + setlocal shiftwidth=4 tabstop=8 autoindent + call setline(1, ['one', 'two', 'three', 'four', 'five']) + let @a = '' + normal! j"ay4y + call assert_equal("two\nthree\nfour\nfive\n", @a) + normal! 3G>2> + call assert_equal(['one', 'two', ' three', ' four', 'five'], + \ getline(1, '$')) + exe "normal! 3G0c2cred\nblue" + call assert_equal(['one', 'two', ' red', ' blue', 'five'], + \ getline(1, '$')) + exe "normal! gg<8<" + call assert_equal(['one', 'two', 'red', 'blue', 'five'], + \ getline(1, '$')) + exe "normal! ggd3d" + call assert_equal(['blue', 'five'], getline(1, '$')) + call setline(1, range(1, 4)) + call feedkeys("gg!3!\\"\", 'xt') + call assert_equal('".,.+2!', @:) + call feedkeys("gg!1!\\"\", 'xt') + call assert_equal('".!', @:) + call feedkeys("gg!9!\\"\", 'xt') + call assert_equal('".,$!', @:) + bw! + endfunc + " vim: shiftwidth=2 sts=2 expandtab *** ../vim-8.2.2915/src/testdir/test_visual.vim 2021-05-30 22:17:21.035457554 +0200 --- src/testdir/test_visual.vim 2021-05-31 19:19:18.579926605 +0200 *************** *** 818,824 **** --- 818,916 ---- exe "normal ld\j" call assert_equal(['13', '46', '789'], getline(1, '$')) + " Test from ':help v_b_I_example' + %d _ + setlocal tabstop=8 shiftwidth=4 + let lines =<< trim END + abcdefghijklmnopqrstuvwxyz + abc defghijklmnopqrstuvwxyz + abcdef ghi jklmnopqrstuvwxyz + abcdefghijklmnopqrstuvwxyz + END + call setline(1, lines) + exe "normal ggfo\3jISTRING" + let expected =<< trim END + abcdefghijklmnSTRINGopqrstuvwxyz + abc STRING defghijklmnopqrstuvwxyz + abcdef ghi STRING jklmnopqrstuvwxyz + abcdefghijklmnSTRINGopqrstuvwxyz + END + call assert_equal(expected, getline(1, '$')) + + " Test from ':help v_b_A_example' + %d _ + let lines =<< trim END + abcdefghijklmnopqrstuvwxyz + abc defghijklmnopqrstuvwxyz + abcdef ghi jklmnopqrstuvwxyz + abcdefghijklmnopqrstuvwxyz + END + call setline(1, lines) + exe "normal ggfo\3j$ASTRING" + let expected =<< trim END + abcdefghijklmnopqrstuvwxyzSTRING + abc defghijklmnopqrstuvwxyzSTRING + abcdef ghi jklmnopqrstuvwxyzSTRING + abcdefghijklmnopqrstuvwxyzSTRING + END + call assert_equal(expected, getline(1, '$')) + + " Test from ':help v_b_<_example' + %d _ + let lines =<< trim END + abcdefghijklmnopqrstuvwxyz + abc defghijklmnopqrstuvwxyz + abcdef ghi jklmnopqrstuvwxyz + abcdefghijklmnopqrstuvwxyz + END + call setline(1, lines) + exe "normal ggfo\3j3l<.." + let expected =<< trim END + abcdefghijklmnopqrstuvwxyz + abc defghijklmnopqrstuvwxyz + abcdef ghi jklmnopqrstuvwxyz + abcdefghijklmnopqrstuvwxyz + END + call assert_equal(expected, getline(1, '$')) + + " Test from ':help v_b_>_example' + %d _ + let lines =<< trim END + abcdefghijklmnopqrstuvwxyz + abc defghijklmnopqrstuvwxyz + abcdef ghi jklmnopqrstuvwxyz + abcdefghijklmnopqrstuvwxyz + END + call setline(1, lines) + exe "normal ggfo\3j>.." + let expected =<< trim END + abcdefghijklmn opqrstuvwxyz + abc defghijklmnopqrstuvwxyz + abcdef ghi jklmnopqrstuvwxyz + abcdefghijklmn opqrstuvwxyz + END + call assert_equal(expected, getline(1, '$')) + + " Test from ':help v_b_r_example' + %d _ + let lines =<< trim END + abcdefghijklmnopqrstuvwxyz + abc defghijklmnopqrstuvwxyz + abcdef ghi jklmnopqrstuvwxyz + abcdefghijklmnopqrstuvwxyz + END + call setline(1, lines) + exe "normal ggfo\5l3jrX" + let expected =<< trim END + abcdefghijklmnXXXXXXuvwxyz + abc XXXXXXhijklmnopqrstuvwxyz + abcdef ghi XXXXXX jklmnopqrstuvwxyz + abcdefghijklmnXXXXXXuvwxyz + END + call assert_equal(expected, getline(1, '$')) + bwipe! + set tabstop& shiftwidth& endfunc " Test block-insert using cursor keys for movement *** ../vim-8.2.2915/src/version.c 2021-05-31 18:40:45.996805282 +0200 --- src/version.c 2021-05-31 19:21:36.607633228 +0200 *************** *** 752,753 **** --- 752,755 ---- { /* Add new patch number below this line */ + /**/ + 2916, /**/ -- An indication you must be a manager: You can explain to somebody the difference between "re-engineering", "down-sizing", "right-sizing", and "firing people's asses". /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// \\\ \\\ sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///