Mercurial > vim
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 |