aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/testdir
diff options
context:
space:
mode:
authorAndy K. Massimino <f8a663@normed.space>2021-03-04 00:58:07 -0500
committerAndy K. Massimino <f8a663@normed.space>2021-03-05 01:45:54 -0500
commit8601e8b0d628037d253b76de8aa524c6174f4af9 (patch)
tree2f237d95e74c3bccda9df1d4adf8f1c53365d32e /src/nvim/testdir
parent4e6b31d978e95be631705dbfe994749c44520d47 (diff)
downloadrneovim-8601e8b0d628037d253b76de8aa524c6174f4af9.tar.gz
rneovim-8601e8b0d628037d253b76de8aa524c6174f4af9.tar.bz2
rneovim-8601e8b0d628037d253b76de8aa524c6174f4af9.zip
vim-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 vim/vim#6970, closes vim/vim#4405) https://github.com/vim/vim/commit/213da551dec465e193619684b260bf9d5a8d6afc
Diffstat (limited to 'src/nvim/testdir')
-rw-r--r--src/nvim/testdir/test_highlight.vim52
1 files changed, 43 insertions, 9 deletions
diff --git a/src/nvim/testdir/test_highlight.vim b/src/nvim/testdir/test_highlight.vim
index 631d19172f..e7ee42ecd6 100644
--- a/src/nvim/testdir/test_highlight.vim
+++ b/src/nvim/testdir/test_highlight.vim
@@ -623,10 +623,47 @@ func Test_xxlast_highlight_RGB_color()
hi clear
endfunc
-" Test default highlighting is restored
-func Test_highlight_restore_defaults()
- hi! link TestLink Identifier
- hi! TestHi ctermbg=red
+func Test_highlight_clear_restores_links()
+ let aaa_id = hlID('aaa')
+ call assert_equal(aaa_id, 0)
+
+ " create default link aaa --> bbb
+ hi def link aaa bbb
+ let id_aaa = hlID('aaa')
+ let hl_aaa_bbb = HighlightArgs('aaa')
+
+ " try to redefine default link aaa --> ccc; check aaa --> bbb
+ hi def link aaa ccc
+ call assert_equal(HighlightArgs('aaa'), hl_aaa_bbb)
+
+ " clear aaa; check aaa --> bbb
+ hi clear aaa
+ call assert_equal(HighlightArgs('aaa'), hl_aaa_bbb)
+
+ " link aaa --> ccc; clear aaa; check aaa --> bbb
+ hi link aaa ccc
+ let id_ccc = hlID('ccc')
+ call assert_equal(synIDtrans(id_aaa), id_ccc)
+ hi clear aaa
+ call assert_equal(HighlightArgs('aaa'), hl_aaa_bbb)
+
+ " forcibly set default link aaa --> ddd
+ hi! def link aaa ddd
+ let id_ddd = hlID('ddd')
+ let hl_aaa_ddd = HighlightArgs('aaa')
+ call assert_equal(synIDtrans(id_aaa), id_ddd)
+
+ " link aaa --> eee; clear aaa; check aaa --> ddd
+ hi link aaa eee
+ let eee_id = hlID('eee')
+ call assert_equal(synIDtrans(id_aaa), eee_id)
+ hi clear aaa
+ call assert_equal(HighlightArgs('aaa'), hl_aaa_ddd)
+endfunc
+
+func Test_highlight_default_colorscheme_restores_links()
+ hi link TestLink Identifier
+ hi TestHi ctermbg=red
let hlTestLinkPre = HighlightArgs('TestLink')
let hlTestHiPre = HighlightArgs('TestHi')
@@ -637,19 +674,16 @@ func Test_highlight_restore_defaults()
syntax reset
endif
let g:colors_name = 'test'
- hi! link TestLink ErrorMsg
- hi! TestHi ctermbg=green
+ hi link TestLink ErrorMsg
+ hi TestHi ctermbg=green
" Restore default highlighting
colorscheme default
- syntax on
" 'default' should work no matter if highlight group was cleared
hi def link TestLink Identifier
hi def TestHi ctermbg=red
-
let hlTestLinkPost = HighlightArgs('TestLink')
let hlTestHiPost = HighlightArgs('TestHi')
-
call assert_equal(hlTestLinkPre, hlTestLinkPost)
call assert_equal(hlTestHiPre, hlTestHiPost)
hi clear