mirror of
https://github.com/neovim/neovim.git
synced 2025-10-05 09:26:30 +00:00
vim-patch:8.1.1900: sign test fails in the GUI (#13511)
Problem: Sign test fails in the GUI. Solution: Catch and ignore the exception.d933c82ff4
Port Test_sign_funcs() changes from patch 8.1.1899. Test_sign_funcs_multi() in patch 8.1.1899 cannot be ported without earlier sign patches.. N/A patches for version.c: vim-patch:8.1.0954: arguments of semsg() and siemsg() are not checked Problem: Arguments of semsg() and siemsg() are not checked. Solution: Add function prototype with __attribute__.0d8562a999
vim-patch:8.2.2126: Ruby: missing function prototype Problem: Ruby: missing function prototype. Solution: Add the prototype.0e12140550
This commit is contained in:
@@ -15,14 +15,8 @@ func Test_sign()
|
|||||||
" icon is ignored when not supported. "(not supported)" is shown after
|
" icon is ignored when not supported. "(not supported)" is shown after
|
||||||
" the icon name when listing signs.
|
" the icon name when listing signs.
|
||||||
sign define Sign1 text=x
|
sign define Sign1 text=x
|
||||||
try
|
|
||||||
sign define Sign2 text=xy texthl=Title linehl=Error
|
call Sign_command_ignore_error('sign define Sign2 text=xy texthl=Title linehl=Error icon=../../pixmaps/stock_vim_find_help.png')
|
||||||
\ icon=../../pixmaps/stock_vim_find_help.png
|
|
||||||
catch /E255:/
|
|
||||||
" Ignore error: E255: Couldn't read in sign data!
|
|
||||||
" This error can happen when running in the GUI.
|
|
||||||
" Some gui like Motif do not support the png icon format.
|
|
||||||
endtry
|
|
||||||
|
|
||||||
" Test listing signs.
|
" Test listing signs.
|
||||||
let a=execute('sign list')
|
let a=execute('sign list')
|
||||||
@@ -104,12 +98,7 @@ func Test_sign()
|
|||||||
edit foo
|
edit foo
|
||||||
call setline(1, ['A', 'B', 'C', 'D'])
|
call setline(1, ['A', 'B', 'C', 'D'])
|
||||||
|
|
||||||
try
|
call Sign_command_ignore_error('sign define Sign3 text=y texthl=DoesNotExist linehl=DoesNotExist icon=doesnotexist.xpm')
|
||||||
sign define Sign3 text=y texthl=DoesNotExist linehl=DoesNotExist
|
|
||||||
\ icon=doesnotexist.xpm
|
|
||||||
catch /E255:/
|
|
||||||
" ignore error: E255: it can happens for guis.
|
|
||||||
endtry
|
|
||||||
|
|
||||||
let fn = expand('%:p')
|
let fn = expand('%:p')
|
||||||
exe 'sign place 43 line=2 name=Sign3 file=' . fn
|
exe 'sign place 43 line=2 name=Sign3 file=' . fn
|
||||||
@@ -378,6 +367,25 @@ func Test_sign_delete_buffer()
|
|||||||
sign undefine Sign
|
sign undefine Sign
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Ignore error: E255: Couldn't read in sign data!
|
||||||
|
" This error can happen when running in the GUI.
|
||||||
|
" Some gui like Motif do not support the png icon format.
|
||||||
|
func Sign_command_ignore_error(cmd)
|
||||||
|
try
|
||||||
|
exe a:cmd
|
||||||
|
catch /E255:/
|
||||||
|
endtry
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
" ignore error: E255: Couldn't read in sign data!
|
||||||
|
" This error can happen when running in gui.
|
||||||
|
func Sign_define_ignore_error(name, attr)
|
||||||
|
try
|
||||||
|
call sign_define(a:name, a:attr)
|
||||||
|
catch /E255:/
|
||||||
|
endtry
|
||||||
|
endfunc
|
||||||
|
|
||||||
" Test for Vim script functions for managing signs
|
" Test for Vim script functions for managing signs
|
||||||
func Test_sign_funcs()
|
func Test_sign_funcs()
|
||||||
" Remove all the signs
|
" Remove all the signs
|
||||||
@@ -394,12 +402,7 @@ func Test_sign_funcs()
|
|||||||
call sign_define("sign2")
|
call sign_define("sign2")
|
||||||
let attr = {'text' : '!!', 'linehl' : 'DiffAdd', 'texthl' : 'DiffChange',
|
let attr = {'text' : '!!', 'linehl' : 'DiffAdd', 'texthl' : 'DiffChange',
|
||||||
\ 'icon' : 'sign2.ico'}
|
\ 'icon' : 'sign2.ico'}
|
||||||
try
|
call Sign_define_ignore_error("sign2", attr)
|
||||||
call sign_define("sign2", attr)
|
|
||||||
catch /E255:/
|
|
||||||
" ignore error: E255: Couldn't read in sign data!
|
|
||||||
" This error can happen when running in gui.
|
|
||||||
endtry
|
|
||||||
call assert_equal([{'name' : 'sign2', 'texthl' : 'DiffChange',
|
call assert_equal([{'name' : 'sign2', 'texthl' : 'DiffChange',
|
||||||
\ 'linehl' : 'DiffAdd', 'text' : '!!', 'icon' : 'sign2.ico'}],
|
\ 'linehl' : 'DiffAdd', 'text' : '!!', 'icon' : 'sign2.ico'}],
|
||||||
\ sign_getdefined("sign2"))
|
\ sign_getdefined("sign2"))
|
||||||
@@ -508,6 +511,16 @@ func Test_sign_funcs()
|
|||||||
call assert_fails('call sign_undefine("none")', 'E155:')
|
call assert_fails('call sign_undefine("none")', 'E155:')
|
||||||
call assert_fails('call sign_undefine([])', 'E730:')
|
call assert_fails('call sign_undefine([])', 'E730:')
|
||||||
|
|
||||||
|
" Test for using '.' as the line number for sign_place()
|
||||||
|
call Sign_define_ignore_error("sign1", attr)
|
||||||
|
call cursor(22, 1)
|
||||||
|
call assert_equal(15, sign_place(15, '', 'sign1', 'Xsign',
|
||||||
|
\ {'lnum' : '.'}))
|
||||||
|
call assert_equal([{'bufnr' : bufnr(''), 'signs' :
|
||||||
|
\ [{'id' : 15, 'group' : '', 'lnum' : 22, 'name' : 'sign1',
|
||||||
|
\ 'priority' : 10}]}],
|
||||||
|
\ sign_getplaced('%', {'lnum' : 22}))
|
||||||
|
|
||||||
call delete("Xsign")
|
call delete("Xsign")
|
||||||
call sign_unplace('*')
|
call sign_unplace('*')
|
||||||
call sign_undefine()
|
call sign_undefine()
|
||||||
|
Reference in New Issue
Block a user