comparison src/testdir/test_highlight.vim @ 22308:19e0784ef769 v8.2.1703

patch 8.2.1703: ":highlight clear" does not restore default link Commit: https://github.com/vim/vim/commit/213da551dec465e193619684b260bf9d5a8d6afc Author: Bram Moolenaar <Bram@vim.org> Date: Thu Sep 17 19:59:26 2020 +0200 patch 8.2.1703: ":highlight clear" does not restore default link Problem: ":highlight clear" does not restore default link. Solution: Remember the default link and restore it. (Antony Scriven, closes #6970, closes #4405)
author Bram Moolenaar <Bram@vim.org>
date Thu, 17 Sep 2020 20:00:07 +0200
parents a9ff3e0d6d54
children e06ba60fbbd8
comparison
equal deleted inserted replaced
22307:f43d6cbbaa5b 22308:19e0784ef769
830 hi HlGrp3 term=NONE 830 hi HlGrp3 term=NONE
831 call assert_equal('hi HlGrp3 cleared', HighlightArgs('HlGrp3')) 831 call assert_equal('hi HlGrp3 cleared', HighlightArgs('HlGrp3'))
832 hi clear 832 hi clear
833 endfunc 833 endfunc
834 834
835 " Test default highlighting is restored 835 func Test_highlight_clear_restores_links()
836 func Test_highlight_restore_defaults() 836 let aaa_id = hlID('aaa')
837 hi! link TestLink Identifier 837 call assert_equal(aaa_id, 0)
838 hi! TestHi ctermbg=red 838
839 " create default link aaa --> bbb
840 hi def link aaa bbb
841 let id_aaa = hlID('aaa')
842 let hl_aaa_bbb = HighlightArgs('aaa')
843
844 " try to redefine default link aaa --> ccc; check aaa --> bbb
845 hi def link aaa ccc
846 call assert_equal(HighlightArgs('aaa'), hl_aaa_bbb)
847
848 " clear aaa; check aaa --> bbb
849 hi clear aaa
850 call assert_equal(HighlightArgs('aaa'), hl_aaa_bbb)
851
852 " link aaa --> ccc; clear aaa; check aaa --> bbb
853 hi link aaa ccc
854 let id_ccc = hlID('ccc')
855 call assert_equal(synIDtrans(id_aaa), id_ccc)
856 hi clear aaa
857 call assert_equal(HighlightArgs('aaa'), hl_aaa_bbb)
858
859 " forcibly set default link aaa --> ddd
860 hi! def link aaa ddd
861 let id_ddd = hlID('ddd')
862 let hl_aaa_ddd = HighlightArgs('aaa')
863 call assert_equal(synIDtrans(id_aaa), id_ddd)
864
865 " link aaa --> eee; clear aaa; check aaa --> ddd
866 hi link aaa eee
867 let eee_id = hlID('eee')
868 call assert_equal(synIDtrans(id_aaa), eee_id)
869 hi clear aaa
870 call assert_equal(HighlightArgs('aaa'), hl_aaa_ddd)
871 endfunc
872
873 func Test_highlight_default_colorscheme_restores_links()
874 hi link TestLink Identifier
875 hi TestHi ctermbg=red
839 876
840 let hlTestLinkPre = HighlightArgs('TestLink') 877 let hlTestLinkPre = HighlightArgs('TestLink')
841 let hlTestHiPre = HighlightArgs('TestHi') 878 let hlTestHiPre = HighlightArgs('TestHi')
842 879
843 " Test colorscheme 880 " Test colorscheme
844 hi clear 881 hi clear
845 if exists('syntax_on') 882 if exists('syntax_on')
846 syntax reset 883 syntax reset
847 endif 884 endif
848 let g:colors_name = 'test' 885 let g:colors_name = 'test'
849 hi! link TestLink ErrorMsg 886 hi link TestLink ErrorMsg
850 hi! TestHi ctermbg=green 887 hi TestHi ctermbg=green
851 888
852 " Restore default highlighting 889 " Restore default highlighting
853 colorscheme default 890 colorscheme default
854 syntax on
855 " 'default' should work no matter if highlight group was cleared 891 " 'default' should work no matter if highlight group was cleared
856 hi def link TestLink Identifier 892 hi def link TestLink Identifier
857 hi def TestHi ctermbg=red 893 hi def TestHi ctermbg=red
858
859 let hlTestLinkPost = HighlightArgs('TestLink') 894 let hlTestLinkPost = HighlightArgs('TestLink')
860 let hlTestHiPost = HighlightArgs('TestHi') 895 let hlTestHiPost = HighlightArgs('TestHi')
861
862 call assert_equal(hlTestLinkPre, hlTestLinkPost) 896 call assert_equal(hlTestLinkPre, hlTestLinkPost)
863 call assert_equal(hlTestHiPre, hlTestHiPost) 897 call assert_equal(hlTestHiPre, hlTestHiPost)
864 hi clear 898 hi clear
865 endfunc 899 endfunc
866 900