comparison src/testdir/test_textobjects.vim @ 34090:f425f4870873 v9.1.0012

patch 9.1.0012: regression with empty inner blocks introduced Commit: https://github.com/vim/vim/commit/3779516988f14f2070d827514c79383334a0946b Author: Maxim Kim <habamax@gmail.com> Date: Fri Jan 5 17:52:49 2024 +0100 patch 9.1.0012: regression with empty inner blocks introduced Problem: regression with empty inner blocks introduced (after v9.1.0007) Solution: Set correct cursor position, Check for visual mode being active (Maxim Kim) relates: #13514 closes: #13819 Signed-off-by: Maxim Kim <habamax@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
author Christian Brabandt <cb@256bit.org>
date Fri, 05 Jan 2024 18:00:04 +0100
parents 21fc3f1676be
children
comparison
equal deleted inserted replaced
34089:bb385e5f64fe 34090:f425f4870873
641 bw! 641 bw!
642 endfunc 642 endfunc
643 643
644 func Test_inner_block_empty_paren() 644 func Test_inner_block_empty_paren()
645 new 645 new
646 call setline(1, ["(text)()", "", "(text)(", ")", "", "()()"]) 646 call setline(1, ["(text)()", "", "(text)(", ")", "", "()()", "", "text()"])
647 647
648 " Example 1 648 " Example 1
649 call cursor(1, 1) 649 call cursor(1, 1)
650 let @" = '' 650 let @" = ''
651 call assert_beeps(':call feedkeys("0f(viby","xt")') 651 call assert_beeps(':call feedkeys("0f(viby","xt")')
663 call cursor(6, 1) 663 call cursor(6, 1)
664 let @" = '' 664 let @" = ''
665 call assert_beeps('call feedkeys("0f(viby", "xt")') 665 call assert_beeps('call feedkeys("0f(viby", "xt")')
666 call assert_equal(3, getpos('.')[2]) 666 call assert_equal(3, getpos('.')[2])
667 call assert_equal('(', @") 667 call assert_equal('(', @")
668
669 " Change empty inner block
670 call cursor(8, 1)
671 call feedkeys("0cibtext", "xt")
672 call assert_equal("text(text)", getline('.'))
673
668 bwipe! 674 bwipe!
669 endfunc 675 endfunc
670 676
671 func Test_inner_block_empty_bracket() 677 func Test_inner_block_empty_bracket()
672 new 678 new
673 call setline(1, ["[text][]", "", "[text][", "]", "", "[][]"]) 679 call setline(1, ["[text][]", "", "[text][", "]", "", "[][]", "", "text[]"])
674 680
675 " Example 1 681 " Example 1
676 call cursor(1, 1) 682 call cursor(1, 1)
677 let @" = '' 683 let @" = ''
678 call assert_beeps(':call feedkeys("0f[viby","xt")') 684 call assert_beeps(':call feedkeys("0f[viby","xt")')
690 call cursor(6, 1) 696 call cursor(6, 1)
691 let @" = '' 697 let @" = ''
692 call assert_beeps('call feedkeys("0f[viby", "xt")') 698 call assert_beeps('call feedkeys("0f[viby", "xt")')
693 call assert_equal(3, getpos('.')[2]) 699 call assert_equal(3, getpos('.')[2])
694 call assert_equal('[', @") 700 call assert_equal('[', @")
701
702 " Change empty inner block
703 call cursor(8, 1)
704 call feedkeys("0ci[text", "xt")
705 call assert_equal("text[text]", getline('.'))
706
695 bwipe! 707 bwipe!
696 endfunc 708 endfunc
697 709
698 func Test_inner_block_empty_brace() 710 func Test_inner_block_empty_brace()
699 new 711 new
700 call setline(1, ["{text}{}", "", "{text}{", "}", "", "{}{}"]) 712 call setline(1, ["{text}{}", "", "{text}{", "}", "", "{}{}", "", "text{}"])
701 713
702 " Example 1 714 " Example 1
703 call cursor(1, 1) 715 call cursor(1, 1)
704 let @" = '' 716 let @" = ''
705 call assert_beeps(':call feedkeys("0f{viby","xt")') 717 call assert_beeps(':call feedkeys("0f{viby","xt")')
717 call cursor(6, 1) 729 call cursor(6, 1)
718 let @" = '' 730 let @" = ''
719 call assert_beeps('call feedkeys("0f{viby", "xt")') 731 call assert_beeps('call feedkeys("0f{viby", "xt")')
720 call assert_equal(3, getpos('.')[2]) 732 call assert_equal(3, getpos('.')[2])
721 call assert_equal('{', @") 733 call assert_equal('{', @")
734
735 " Change empty inner block
736 call cursor(8, 1)
737 call feedkeys("0ciBtext", "xt")
738 call assert_equal("text{text}", getline('.'))
739
722 bwipe! 740 bwipe!
723 endfunc 741 endfunc
724 742
725 func Test_inner_block_empty_lessthan() 743 func Test_inner_block_empty_lessthan()
726 new 744 new