From c93fd83df206c2438a735d6d99e640db1976f2f0 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 9 Oct 2022 18:48:32 +0800 Subject: vim-patch:9.0.0697: cursor in wrong position with Visual substitute Problem: Cursor in wrong position with Visual substitute. Solution: When restoring 'linebreak' mark the virtual column as invalid. (closes vim/vim#11309, closes vim/vim#11311) https://github.com/vim/vim/commit/16dab41537ae206f4cab676ad53edbae5fd5fb45 N/A patches for version.c: vim-patch:9.0.0699: tiny build fails Problem: Tiny build fails. Solution: Add #ifdef. https://github.com/vim/vim/commit/bf499c0e6f30a94fe062f83ea0190f93178d0d74 --- src/nvim/testdir/test_visual.vim | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'src/nvim/testdir/test_visual.vim') diff --git a/src/nvim/testdir/test_visual.vim b/src/nvim/testdir/test_visual.vim index 9c1ad0c099..faa6b2c1c3 100644 --- a/src/nvim/testdir/test_visual.vim +++ b/src/nvim/testdir/test_visual.vim @@ -1492,5 +1492,37 @@ func Test_switch_buffer_ends_visual_mode() exe 'bwipe!' buf2 endfunc +" Test that cursor is drawn at correct position after an operator in Visual +" mode when 'linebreak' and 'showcmd' are enabled. +func Test_visual_operator_with_linebreak() + CheckRunVimInTerminal + + let lines =<< trim END + set linebreak showcmd noshowmode + call setline(1, repeat('a', &columns - 10) .. ' bbbbbbbbbb c') + END + call writefile(lines, 'XTest_visual_op_linebreak', 'D') + + let buf = RunVimInTerminal('-S XTest_visual_op_linebreak', {'rows': 6}) + + call term_sendkeys(buf, '$v$') + call WaitForAssert({-> assert_equal(13, term_getcursor(buf)[1])}) + call term_sendkeys(buf, 'zo') + call WaitForAssert({-> assert_equal(12, term_getcursor(buf)[1])}) + + call term_sendkeys(buf, "$\$") + call WaitForAssert({-> assert_equal(13, term_getcursor(buf)[1])}) + call term_sendkeys(buf, 'I') + call WaitForAssert({-> assert_equal(12, term_getcursor(buf)[1])}) + + call term_sendkeys(buf, "\$v$") + call WaitForAssert({-> assert_equal(13, term_getcursor(buf)[1])}) + call term_sendkeys(buf, 's') + call WaitForAssert({-> assert_equal(12, term_getcursor(buf)[1])}) + + " clean up + call term_sendkeys(buf, "\") + call StopVimInTerminal(buf) +endfunc " vim: shiftwidth=2 sts=2 expandtab -- cgit From 7cdaa74b3684d40a6e72bbf3eb4deedb0c5df7bc Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 9 Oct 2022 18:57:22 +0800 Subject: vim-patch:9.0.0702: incomplete testing cursor position with 'linebreak' set Problem: Incomplete testing cursor position after change with 'linebreak' set. Solution: Add a test and move test cases together. (closes vim/vim#11313) https://github.com/vim/vim/commit/30c0c467d6cc2a7af960ccb9002b50115b0e55cf --- src/nvim/testdir/test_visual.vim | 33 --------------------------------- 1 file changed, 33 deletions(-) (limited to 'src/nvim/testdir/test_visual.vim') diff --git a/src/nvim/testdir/test_visual.vim b/src/nvim/testdir/test_visual.vim index faa6b2c1c3..65665d36c0 100644 --- a/src/nvim/testdir/test_visual.vim +++ b/src/nvim/testdir/test_visual.vim @@ -1492,37 +1492,4 @@ func Test_switch_buffer_ends_visual_mode() exe 'bwipe!' buf2 endfunc -" Test that cursor is drawn at correct position after an operator in Visual -" mode when 'linebreak' and 'showcmd' are enabled. -func Test_visual_operator_with_linebreak() - CheckRunVimInTerminal - - let lines =<< trim END - set linebreak showcmd noshowmode - call setline(1, repeat('a', &columns - 10) .. ' bbbbbbbbbb c') - END - call writefile(lines, 'XTest_visual_op_linebreak', 'D') - - let buf = RunVimInTerminal('-S XTest_visual_op_linebreak', {'rows': 6}) - - call term_sendkeys(buf, '$v$') - call WaitForAssert({-> assert_equal(13, term_getcursor(buf)[1])}) - call term_sendkeys(buf, 'zo') - call WaitForAssert({-> assert_equal(12, term_getcursor(buf)[1])}) - - call term_sendkeys(buf, "$\$") - call WaitForAssert({-> assert_equal(13, term_getcursor(buf)[1])}) - call term_sendkeys(buf, 'I') - call WaitForAssert({-> assert_equal(12, term_getcursor(buf)[1])}) - - call term_sendkeys(buf, "\$v$") - call WaitForAssert({-> assert_equal(13, term_getcursor(buf)[1])}) - call term_sendkeys(buf, 's') - call WaitForAssert({-> assert_equal(12, term_getcursor(buf)[1])}) - - " clean up - call term_sendkeys(buf, "\") - call StopVimInTerminal(buf) -endfunc - " vim: shiftwidth=2 sts=2 expandtab -- cgit From bc798dfd8cea9a5f93461e05dcb8409b6d96afc0 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sun, 16 Oct 2022 08:01:44 +0800 Subject: vim-patch:9.0.0765: with a Visual block a put command column may go negative (#20676) Problem: With a Visual block a put command column may go negative. Solution: Check that the column does not become negative. https://github.com/vim/vim/commit/36343ae0fb7247e060abfd35fb8e4337b33abb4b --- src/nvim/testdir/test_visual.vim | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/nvim/testdir/test_visual.vim') diff --git a/src/nvim/testdir/test_visual.vim b/src/nvim/testdir/test_visual.vim index 65665d36c0..7fb34ec81f 100644 --- a/src/nvim/testdir/test_visual.vim +++ b/src/nvim/testdir/test_visual.vim @@ -474,6 +474,18 @@ func Test_visual_block_put() bw! endfunc +func Test_visual_block_put_invalid() + enew! + behave mswin + norm yy + norm v)Ps/^/ + " this was causing the column to become negative + silent norm ggv)P + + bwipe! + behave xterm +endfunc + " Visual modes (v V CTRL-V) followed by an operator; count; repeating func Test_visual_mode_op() new -- cgit From 1887d8d7d0dd619fa90fe11182c436bc3c71c9d5 Mon Sep 17 00:00:00 2001 From: dundargoc <33953936+dundargoc@users.noreply.github.com> Date: Sun, 23 Oct 2022 03:45:39 +0200 Subject: docs: fix typos (#20724) Co-authored-by: Marco Lehmann --- src/nvim/testdir/test_visual.vim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/nvim/testdir/test_visual.vim') diff --git a/src/nvim/testdir/test_visual.vim b/src/nvim/testdir/test_visual.vim index 7fb34ec81f..a9c057088d 100644 --- a/src/nvim/testdir/test_visual.vim +++ b/src/nvim/testdir/test_visual.vim @@ -1281,7 +1281,7 @@ func Test_visual_block_with_virtualedit() endfunc func Test_visual_block_ctrl_w_f() - " Emtpy block selected in new buffer should not result in an error. + " Empty block selected in new buffer should not result in an error. au! BufNew foo sil norm f edit foo -- cgit From 2476f41a4a4dcf940bce9ea9ae48a6017a35fbc2 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Fri, 4 Nov 2022 19:49:23 +0800 Subject: vim-patch:8.2.1022: various parts of code not covered by tests Problem: Various parts of code not covered by tests. Solution: Add more tests. (Yegappan Lakshmanan, closes vim/vim#6300) https://github.com/vim/vim/commit/845e0ee59430eac07e74b6cb92020e420d17953d Omit test_iminsert.vim: the commit that created this file was N/A. Omit test_viminfo.vim: the added tests are N/A. --- src/nvim/testdir/test_visual.vim | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'src/nvim/testdir/test_visual.vim') diff --git a/src/nvim/testdir/test_visual.vim b/src/nvim/testdir/test_visual.vim index a9c057088d..712ea343ed 100644 --- a/src/nvim/testdir/test_visual.vim +++ b/src/nvim/testdir/test_visual.vim @@ -225,6 +225,15 @@ func Test_virtual_replace() exe "normal iabcdefghijklmnopqrst\0gRAB\tIJKLMNO\tQR" call assert_equal(['AB......CDEFGHI.Jkl', \ 'AB IJKLMNO QRst'], getline(12, 13)) + + " Test inserting Tab with 'noexpandtab' and 'softabstop' set to 4 + %d + call setline(1, 'aaaaaaaaaaaaa') + set softtabstop=4 + exe "normal gggR\\x" + call assert_equal("\txaaaa", getline(1)) + set softtabstop& + enew! set noai bs&vim if exists('save_t_kD') -- cgit From 08d5b4275ecaae4d3329d4ed2469782f10dd463e Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Wed, 11 Jan 2023 06:39:20 +0800 Subject: vim-patch:9.0.1172: when 'selection' is "exclusive" then "1v" is one char short (#21735) Problem: When 'selection' is "exclusive" then "1v" is one char short. Solution: Add one character when 'selection' is "exclusive. (closes vim/vim#11791) https://github.com/vim/vim/commit/79c11e399be3d96ed6d1c7458b1380e878ec717b Cherry-pick update_curswant_force() refactor from patch 9.0.0482. Co-authored-by: Bram Moolenaar --- src/nvim/testdir/test_visual.vim | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/nvim/testdir/test_visual.vim') diff --git a/src/nvim/testdir/test_visual.vim b/src/nvim/testdir/test_visual.vim index 712ea343ed..14d62089cf 100644 --- a/src/nvim/testdir/test_visual.vim +++ b/src/nvim/testdir/test_visual.vim @@ -1338,6 +1338,18 @@ func Test_visual_reselect_with_count() call delete('XvisualReselect') endfunc +func Test_visual_reselect_exclusive() + new + call setline(1, ['abcde', 'abcde']) + set selection=exclusive + normal 1G0viwd + normal 2G01vd + call assert_equal(['', ''], getline(1, 2)) + + set selection& + bwipe! +endfunc + func Test_visual_block_insert_round_off() new " The number of characters are tuned to fill a 4096 byte allocated block, -- cgit