1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-23 17:20:04 +08:00
SpaceVim/bundle/vim-textobj-user/t/select-x-function-countability.vim
2020-06-13 14:06:35 +08:00

102 lines
2.4 KiB
VimL

call textobj#user#plugin('nthline', {
\ '-': {
\ 'select': '[sf]',
\ 'select-function': 'SelectNthLine',
\ 'select-a': '[saf]',
\ 'select-a-function': 'SelectNthLine',
\ 'select-i': '[sif]',
\ 'select-i-function': 'SelectNthLine',
\ }
\ })
function! SelectNthLine()
execute 'normal!' v:count1.'gg'
normal! 0
let b = getpos('.')
normal! $
let e = getpos('.')
return ['V', b, e]
endfunction
describe 'textobj-user'
before
new
put ='1'
put ='22'
put ='333'
put ='4444'
put ='55555'
1 delete _
function! b:.test_countability_in_operator_pending_mode(obj)
let cases = [
\ ['', 1, 1, 1, 2],
\ [1, 1, 1, 1, 2],
\ [2, 2, 1, 2, 3],
\ [3, 3, 1, 3, 4],
\ [4, 4, 1, 4, 5],
\ [5, 5, 1, 5, 6],
\ [100, 5, 1, 5, 6],
\ ]
for [c, ebl, ebc, eel, eec] in cases
normal! gg
execute 'normal' c.'y'.a:obj
Expect [a:obj, c, line("'["), col("'["), line("']"), col("']")]
\ ==# [a:obj, c, ebl, ebc, eel, eec]
endfor
endfunction
function! b:.test_countability_in_visual_mode(obj)
let cases = [
\ ['', 1, 1, 1, 2],
\ [1, 1, 1, 1, 2],
\ [2, 2, 1, 2, 3],
\ [3, 3, 1, 3, 4],
\ [4, 4, 1, 4, 5],
\ [5, 5, 1, 5, 6],
\ [100, 5, 1, 5, 6],
\ ]
for [c, ebl, ebc, eel, eec] in cases
normal! gg
execute 'normal' 'vj'.c.a:obj.'y'
Expect [a:obj, c, line("'["), col("'["), line("']"), col("']")]
\ ==# [a:obj, c, ebl, ebc, eel, eec]
endfor
endfunction
end
after
close!
end
describe 'select-function'
it 'can use a count given in Operator-pending mode'
call b:.test_countability_in_operator_pending_mode('[sf]')
end
it 'can use a count given in Visual mode'
call b:.test_countability_in_visual_mode('[sf]')
end
end
describe 'select-a-function'
it 'can use a count given in Operator-pending mode'
call b:.test_countability_in_operator_pending_mode('[saf]')
end
it 'can use a count given in Visual mode'
call b:.test_countability_in_visual_mode('[saf]')
end
end
describe 'select-i-function'
it 'can use a count given in Operator-pending mode'
call b:.test_countability_in_operator_pending_mode('[sif]')
end
it 'can use a count given in Visual mode'
call b:.test_countability_in_visual_mode('[sif]')
end
end
end