mirror of
https://github.com/neovim/neovim.git
synced 2025-12-15 19:05:40 +00:00
vim-patch:9.1.0007: can select empty inner text blocks
Problem: can select empty inner text blocks
(laurentalacoque)
Solution: make selecting empty inner text blocks an error
textobjects: Make selecting inner empty blocks an error
fixes: vim/vim#13514
closes: vim/vim#13523
ad4d7f446d
Co-authored-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
@@ -402,7 +402,7 @@ func Test_paragraph()
|
||||
call assert_beeps("normal Vipip")
|
||||
exe "normal \<C-C>"
|
||||
|
||||
close!
|
||||
bw!
|
||||
endfunc
|
||||
|
||||
" Tests for text object aw
|
||||
@@ -608,7 +608,7 @@ func Test_textobj_quote()
|
||||
normal $hhyi"
|
||||
call assert_equal('bar', @")
|
||||
|
||||
close!
|
||||
bw!
|
||||
endfunc
|
||||
|
||||
" Test for i(, i<, etc. when cursor is in front of a block
|
||||
@@ -640,7 +640,115 @@ func Test_textobj_find_paren_forward()
|
||||
normal 0di)
|
||||
call assert_equal('foo ()', getline(1))
|
||||
|
||||
close!
|
||||
bw!
|
||||
endfunc
|
||||
|
||||
func Test_inner_block_empty_paren()
|
||||
new
|
||||
call setline(1, ["(text)()", "", "(text)(", ")", "", "()()"])
|
||||
|
||||
" Example 1
|
||||
call cursor(1, 1)
|
||||
let @" = ''
|
||||
call assert_beeps(':call feedkeys("0f(viby","xt")')
|
||||
call assert_equal(7, getpos('.')[2])
|
||||
call assert_equal('(', @")
|
||||
|
||||
" Example 2
|
||||
call cursor(3, 1)
|
||||
let @" = ''
|
||||
call assert_beeps('call feedkeys("0f(viby", "xt")')
|
||||
call assert_equal(7, getpos('.')[2])
|
||||
call assert_equal('(', @")
|
||||
|
||||
" Example 3
|
||||
call cursor(6, 1)
|
||||
let @" = ''
|
||||
call assert_beeps('call feedkeys("0f(viby", "xt")')
|
||||
call assert_equal(3, getpos('.')[2])
|
||||
call assert_equal('(', @")
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
func Test_inner_block_empty_bracket()
|
||||
new
|
||||
call setline(1, ["[text][]", "", "[text][", "]", "", "[][]"])
|
||||
|
||||
" Example 1
|
||||
call cursor(1, 1)
|
||||
let @" = ''
|
||||
call assert_beeps(':call feedkeys("0f[viby","xt")')
|
||||
call assert_equal(7, getpos('.')[2])
|
||||
call assert_equal('[', @")
|
||||
|
||||
" Example 2
|
||||
call cursor(3, 1)
|
||||
let @" = ''
|
||||
call assert_beeps('call feedkeys("0f[viby", "xt")')
|
||||
call assert_equal(7, getpos('.')[2])
|
||||
call assert_equal('[', @")
|
||||
|
||||
" Example 3
|
||||
call cursor(6, 1)
|
||||
let @" = ''
|
||||
call assert_beeps('call feedkeys("0f[viby", "xt")')
|
||||
call assert_equal(3, getpos('.')[2])
|
||||
call assert_equal('[', @")
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
func Test_inner_block_empty_brace()
|
||||
new
|
||||
call setline(1, ["{text}{}", "", "{text}{", "}", "", "{}{}"])
|
||||
|
||||
" Example 1
|
||||
call cursor(1, 1)
|
||||
let @" = ''
|
||||
call assert_beeps(':call feedkeys("0f{viby","xt")')
|
||||
call assert_equal(7, getpos('.')[2])
|
||||
call assert_equal('{', @")
|
||||
|
||||
" Example 2
|
||||
call cursor(3, 1)
|
||||
let @" = ''
|
||||
call assert_beeps('call feedkeys("0f{viby", "xt")')
|
||||
call assert_equal(7, getpos('.')[2])
|
||||
call assert_equal('{', @")
|
||||
|
||||
" Example 3
|
||||
call cursor(6, 1)
|
||||
let @" = ''
|
||||
call assert_beeps('call feedkeys("0f{viby", "xt")')
|
||||
call assert_equal(3, getpos('.')[2])
|
||||
call assert_equal('{', @")
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
func Test_inner_block_empty_lessthan()
|
||||
new
|
||||
call setline(1, ["<text><>", "", "<text><", ">", "", "<><>"])
|
||||
|
||||
" Example 1
|
||||
call cursor(1, 1)
|
||||
let @" = ''
|
||||
call assert_beeps(':call feedkeys("0f<viby","xt")')
|
||||
call assert_equal(7, getpos('.')[2])
|
||||
call assert_equal('<', @")
|
||||
|
||||
" Example 2
|
||||
call cursor(3, 1)
|
||||
let @" = ''
|
||||
call assert_beeps('call feedkeys("0f<viby", "xt")')
|
||||
call assert_equal(7, getpos('.')[2])
|
||||
call assert_equal('<', @")
|
||||
|
||||
" Example 3
|
||||
call cursor(6, 1)
|
||||
let @" = ''
|
||||
call assert_beeps('call feedkeys("0f<viby", "xt")')
|
||||
call assert_equal(3, getpos('.')[2])
|
||||
call assert_equal('<', @")
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
||||
Reference in New Issue
Block a user