Files
JIe 2bb7059579
Some checks failed
Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
Detach Plugins / check (GitHub.vim) (push) Has been cancelled
Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
Detach Plugins / check (git.vim) (push) Has been cancelled
Detach Plugins / check (iedit.vim) (push) Has been cancelled
Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
Detach Plugins / check (vim-chat) (push) Has been cancelled
Detach Plugins / check (vim-cheat) (push) Has been cancelled
Detach Plugins / check (vim-todo) (push) Has been cancelled
Detach Plugins / check (xmake.vim) (push) Has been cancelled
test / Linux (nvim, nightly) (push) Has been cancelled
test / Linux (nvim, v0.3.8) (push) Has been cancelled
test / Linux (nvim, v0.4.0) (push) Has been cancelled
test / Linux (nvim, v0.4.2) (push) Has been cancelled
test / Linux (nvim, v0.4.3) (push) Has been cancelled
test / Linux (nvim, v0.4.4) (push) Has been cancelled
test / Linux (nvim, v0.5.0) (push) Has been cancelled
test / Linux (nvim, v0.5.1) (push) Has been cancelled
test / Linux (nvim, v0.6.0) (push) Has been cancelled
test / Linux (nvim, v0.6.1) (push) Has been cancelled
test / Linux (nvim, v0.7.0) (push) Has been cancelled
test / Linux (nvim, v0.7.2) (push) Has been cancelled
test / Linux (nvim, v0.8.0) (push) Has been cancelled
test / Linux (nvim, v0.8.1) (push) Has been cancelled
test / Linux (nvim, v0.8.2) (push) Has been cancelled
test / Linux (nvim, v0.8.3) (push) Has been cancelled
test / Linux (nvim, v0.9.0) (push) Has been cancelled
test / Linux (nvim, v0.9.1) (push) Has been cancelled
test / Linux (true, vim, v7.4.052) (push) Has been cancelled
test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
test / Linux (true, vim, v7.4.629) (push) Has been cancelled
test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
test / Linux (vim, nightly) (push) Has been cancelled
test / Linux (vim, v8.0.0184) (push) Has been cancelled
test / Linux (vim, v8.0.1453) (push) Has been cancelled
test / Linux (vim, v8.1.2269) (push) Has been cancelled
test / Linux (vim, v8.2.2434) (push) Has been cancelled
test / Linux (vim, v8.2.3995) (push) Has been cancelled
test / Windows (nvim, nightly) (push) Has been cancelled
test / Windows (nvim, v0.3.8) (push) Has been cancelled
test / Windows (nvim, v0.4.2) (push) Has been cancelled
test / Windows (nvim, v0.4.3) (push) Has been cancelled
test / Windows (nvim, v0.4.4) (push) Has been cancelled
test / Windows (nvim, v0.5.0) (push) Has been cancelled
test / Windows (nvim, v0.5.1) (push) Has been cancelled
test / Windows (nvim, v0.6.0) (push) Has been cancelled
test / Windows (nvim, v0.6.1) (push) Has been cancelled
test / Windows (nvim, v0.7.0) (push) Has been cancelled
test / Windows (nvim, v0.7.2) (push) Has been cancelled
test / Windows (nvim, v0.8.0) (push) Has been cancelled
test / Windows (nvim, v0.8.1) (push) Has been cancelled
test / Windows (nvim, v0.8.2) (push) Has been cancelled
test / Windows (nvim, v0.8.3) (push) Has been cancelled
test / Windows (nvim, v0.9.0) (push) Has been cancelled
test / Windows (nvim, v0.9.1) (push) Has been cancelled
test / Windows (vim, nightly) (push) Has been cancelled
test / Windows (vim, v7.4.1185) (push) Has been cancelled
test / Windows (vim, v7.4.1689) (push) Has been cancelled
test / Windows (vim, v8.0.0027) (push) Has been cancelled
test / Windows (vim, v8.0.1453) (push) Has been cancelled
test / Windows (vim, v8.1.2269) (push) Has been cancelled
test / Windows (vim, v8.2.2434) (push) Has been cancelled
test / Windows (vim, v8.2.3995) (push) Has been cancelled
docker / docker (push) Has been cancelled
mirror / check (coding) (push) Has been cancelled
mirror / check (gitee) (push) Has been cancelled
mirror / check (gitlab) (push) Has been cancelled
init
2024-08-21 14:17:26 +08:00

161 lines
4.1 KiB
VimL

let s:suite = themis#suite('fold')
let s:assert = themis#helper('assert')
map / <Plug>(incsearch-forward)
map ? <Plug>(incsearch-backward)
map g/ <Plug>(incsearch-stay)
function! s:add_lines(lines)
for line in reverse(a:lines)
put! =line
endfor
endfunction
function! s:reset_buffer()
:1,$ delete
call s:add_lines(copy(s:line_texts))
normal! Gddgg0zt
endfunction
function! s:suite.before()
set foldmethod=marker
map / <Plug>(incsearch-forward)
map ? <Plug>(incsearch-backward)
map g/ <Plug>(incsearch-stay)
let s:line_texts = [
\ '1'
\ , '2'
\ , '3'
\ , '4fold {{{'
\ , '5 inner fold {{{'
\ , '6 destination'
\ , '7 }}}'
\ , '8}}}'
\ ]
call s:reset_buffer()
endfunction
function! s:suite.before_each()
:1
normal! zM
call s:assert.equals(foldclosed(6), 4)
endfunction
function! s:suite.after()
unmap /
unmap ?
unmap g/
:1,$ delete
set foldmethod&
endfunction
function! s:suite.unfold_after_search_forward_backward()
exec "normal" "/destination\<CR>"
call s:assert.equals(foldclosed(6), -1)
endfunction
function! s:suite.unfold_after_search_forward_offset()
exec "normal" "/destination/e\<CR>"
call s:assert.equals(foldclosed(6), -1)
endfunction
function! s:suite.unfold_after_search_backward()
exec "normal" "?destination\<CR>"
call s:assert.equals(foldclosed(6), -1)
endfunction
function! s:suite.unfold_after_search_backward()
exec "normal" "?destination?e\<CR>"
call s:assert.equals(foldclosed(6), -1)
endfunction
function! s:suite.do_not_unfold_after_just_stay()
exec "normal" "g/destination\<CR>"
call s:assert.equals(foldclosed(6), 4)
exec "normal" "g/destination/e\<CR>"
call s:assert.equals(foldclosed(6), 4)
endfunction
function! s:suite.unfold_after_exit_stay()
exec "normal" "g/destination\<Tab>\<CR>"
call s:assert.equals(foldclosed(6), -1)
endfunction
function! s:suite.unfold_after_exit_stay_offset()
exec "normal" "g/destination/e\<Tab>\<CR>"
call s:assert.equals(foldclosed(6), -1)
endfunction
function! s:suite.do_not_unfold_if_foldopen_does_not_contain_search()
set foldopen-=search
call s:assert.equals(foldclosed(6), 4)
exec "normal" "/destination\<CR>"
call s:assert.equals(foldclosed(6), 4)
normal! gg
exec "normal" "/destination/e\<CR>"
call s:assert.equals(foldclosed(6), 4)
normal! gg
exec "normal" "?destination\<CR>"
call s:assert.equals(foldclosed(6), 4)
normal! gg
exec "normal" "?destination?e\<CR>"
call s:assert.equals(foldclosed(6), 4)
normal! gg
exec "normal" "g/destination\<Tab>\<CR>"
call s:assert.equals(foldclosed(6), 4)
normal! gg
exec "normal" "g/destination/e\<Tab>\<CR>"
call s:assert.equals(foldclosed(6), 4)
normal! gg
set foldopen&
endfunction
function! s:suite.unfold_if_foldopen_does_contain_all()
set foldopen=all
call s:assert.equals(foldclosed(6), 4)
exec "normal" "/destination\<CR>"
call s:assert.equals(foldclosed(6), -1)
normal! ggzM
exec "normal" "/destination/e\<CR>"
call s:assert.equals(foldclosed(6), -1)
normal! ggzM
exec "normal" "?destination\<CR>"
call s:assert.equals(foldclosed(6), -1)
normal! ggzM
exec "normal" "?destination?e\<CR>"
call s:assert.equals(foldclosed(6), -1)
normal! ggzM
exec "normal" "g/destination\<Tab>\<CR>"
call s:assert.equals(foldclosed(6), -1)
normal! ggzM
exec "normal" "g/destination/e\<Tab>\<CR>"
call s:assert.equals(foldclosed(6), -1)
normal! ggzM
set foldopen&
endfunction
function! s:suite.do_not_unfold_when_operator_pending()
set foldopen&
call s:assert.equals(foldclosed(6), 4)
exec "normal" "gu/destination\<CR>"
call s:assert.equals(foldclosed(6), 4)
normal! gg
exec "normal" "gu/destination/e\<CR>"
call s:assert.equals(foldclosed(6), 4)
normal! gg
exec "normal" "gu?destination\<CR>"
call s:assert.equals(foldclosed(6), 4)
normal! gg
exec "normal" "gu?destination?e\<CR>"
call s:assert.equals(foldclosed(6), 4)
normal! gg
exec "normal" "gug/destination\<Tab>\<CR>"
call s:assert.equals(foldclosed(6), 4)
normal! gg
exec "normal" "gug/destination/e\<Tab>\<CR>"
call s:assert.equals(foldclosed(6), 4)
endfunction