mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-01-24 06:20:05 +08:00
124 lines
3.4 KiB
VimL
124 lines
3.4 KiB
VimL
|
let g:bm_sign_index = 1
|
||
|
let g:bookmark_sign = 'xy'
|
||
|
let g:bookmark_annotation_sign = 'yz'
|
||
|
let g:bookmark_highlight_lines = 0
|
||
|
|
||
|
describe 'with uninitialized signs'
|
||
|
|
||
|
it 'should initialize'
|
||
|
call bm_sign#init()
|
||
|
|
||
|
Expect g:bm_sign_index ==# 1
|
||
|
Expect util#redir_execute(":sign list Bookmark") ==#
|
||
|
\ "sign Bookmark text=xy linehl= texthl=BookmarkSign"
|
||
|
Expect util#redir_execute(":sign list BookmarkAnnotation") ==#
|
||
|
\ "sign BookmarkAnnotation text=yz linehl= texthl=BookmarkAnnotationSign"
|
||
|
Expect split(util#redir_execute(":highlight BookmarkSignDefault"), '\n')[0] ==#
|
||
|
\ "BookmarkSignDefault xxx ctermfg=33"
|
||
|
Expect split(util#redir_execute(":highlight BookmarkAnnotationSignDefault"), '\n')[0] ==#
|
||
|
\ "BookmarkAnnotationSignDefault xxx ctermfg=28"
|
||
|
Expect split(util#redir_execute(":highlight BookmarkLineDefault"), '\n')[0] ==#
|
||
|
\ "BookmarkLineDefault xxx ctermfg=232 ctermbg=33"
|
||
|
Expect split(util#redir_execute(":highlight BookmarkAnnotationLineDefault"), '\n')[0] ==#
|
||
|
\ "BookmarkAnnotationLineDefault xxx ctermfg=232 ctermbg=28"
|
||
|
end
|
||
|
|
||
|
it 'should initialize with line highlight'
|
||
|
let g:bookmark_highlight_lines = 1
|
||
|
|
||
|
call bm_sign#init()
|
||
|
|
||
|
Expect util#redir_execute(":sign list Bookmark") ==#
|
||
|
\ "sign Bookmark text=xy linehl=BookmarkLine texthl=BookmarkSign"
|
||
|
end
|
||
|
|
||
|
end
|
||
|
|
||
|
describe "with initialized signs"
|
||
|
|
||
|
before
|
||
|
let g:bm_sign_index = 1
|
||
|
call bm_sign#init()
|
||
|
execute ":new"
|
||
|
execute ":e LICENSE"
|
||
|
let g:test_file = expand("%:p")
|
||
|
end
|
||
|
|
||
|
it 'should add signs'
|
||
|
Expect bm_sign#add(g:test_file, 2, 0) ==# 1
|
||
|
Expect bm_sign#add(g:test_file, 10, 1) ==# 2
|
||
|
|
||
|
let signs = util#redir_execute(":sign place file=". g:test_file)
|
||
|
let lines = bm_sign#lines_for_signs(g:test_file)
|
||
|
|
||
|
Expect g:bm_sign_index ==# 3
|
||
|
Expect len(split(signs, '\n')) ==# 4
|
||
|
Expect lines ==# {'1': '2', '2': '10'}
|
||
|
end
|
||
|
|
||
|
it 'should delete signs'
|
||
|
let idx1 = bm_sign#add(g:test_file, 2, 0)
|
||
|
let idx2 = bm_sign#add(g:test_file, 10, 0)
|
||
|
Expect idx1 ==# 1
|
||
|
Expect idx2 ==# 2
|
||
|
call bm_sign#del(g:test_file, idx1)
|
||
|
call bm_sign#del(g:test_file, idx2)
|
||
|
|
||
|
let signs = util#redir_execute(":sign place file=". g:test_file)
|
||
|
let lines = bm_sign#lines_for_signs(g:test_file)
|
||
|
|
||
|
Expect lines ==# {}
|
||
|
Expect len(split(signs, '\n')) ==# 1
|
||
|
end
|
||
|
|
||
|
it 'should not fail to delete signs from invalid buffer'
|
||
|
call bm_sign#del("invalid", 1)
|
||
|
end
|
||
|
|
||
|
after
|
||
|
execute ":q!"
|
||
|
end
|
||
|
|
||
|
end
|
||
|
|
||
|
describe "with added signs"
|
||
|
|
||
|
before
|
||
|
let g:bm_sign_index = 3
|
||
|
call bm_sign#init()
|
||
|
execute ":new"
|
||
|
execute ":e LICENSE"
|
||
|
let g:test_file = expand("%:p")
|
||
|
end
|
||
|
|
||
|
it 'should add sign with lower index'
|
||
|
call bm_sign#add_at(g:test_file, 1, 5, 0)
|
||
|
Expect g:bm_sign_index ==# 3
|
||
|
end
|
||
|
|
||
|
it 'should add sign with equal index'
|
||
|
call bm_sign#add_at(g:test_file, 3, 5, 0)
|
||
|
Expect g:bm_sign_index ==# 4
|
||
|
end
|
||
|
|
||
|
it 'should add sign with higher index'
|
||
|
call bm_sign#add_at(g:test_file, 4, 5, 0)
|
||
|
Expect g:bm_sign_index ==# 5
|
||
|
end
|
||
|
|
||
|
it 'should transform sign to annotation'
|
||
|
call bm_sign#add_at(g:test_file, 4, 5, 0)
|
||
|
call bm_sign#update_at(g:test_file, 4, 5, 1)
|
||
|
|
||
|
let signs = util#redir_execute(":sign place file=". g:test_file)
|
||
|
let lines = split(signs, "\n")
|
||
|
Expect match(lines, 'name=bookmarkannotation\c') ># 0
|
||
|
end
|
||
|
|
||
|
after
|
||
|
execute "sign unplace *"
|
||
|
execute ":q!"
|
||
|
end
|
||
|
|
||
|
end
|