mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-01-23 22:30:04 +08:00
102 lines
2.4 KiB
VimL
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
|