mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.2.1693: "hi def" does not work for cleared highlight
Problem: "hi def" does not work for cleared highlight. Solution: Check the "sg_cleared" flag. (Maxim Kim, closes #6956, closes #4405)
This commit is contained in:
parent
fb489af2ec
commit
05eb5b9cae
@ -729,7 +729,8 @@ do_highlight(
|
||||
|
||||
if (!ends_excmd2(line, skipwhite(to_end)))
|
||||
{
|
||||
semsg(_("E413: Too many arguments: \":highlight link %s\""), from_start);
|
||||
semsg(_("E413: Too many arguments: \":highlight link %s\""),
|
||||
from_start);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -1629,7 +1630,8 @@ restore_cterm_colors(void)
|
||||
static int
|
||||
hl_has_settings(int idx, int check_link)
|
||||
{
|
||||
return ( HL_TABLE()[idx].sg_term_attr != 0
|
||||
return HL_TABLE()[idx].sg_cleared == 0
|
||||
&& ( HL_TABLE()[idx].sg_term_attr != 0
|
||||
|| HL_TABLE()[idx].sg_cterm_attr != 0
|
||||
|| HL_TABLE()[idx].sg_cterm_fg != 0
|
||||
|| HL_TABLE()[idx].sg_cterm_bg != 0
|
||||
|
@ -832,4 +832,36 @@ func Test_highlight_term_attr()
|
||||
hi clear
|
||||
endfunc
|
||||
|
||||
" Test default highlighting is restored
|
||||
func Test_highlight_restore_defaults()
|
||||
hi! link TestLink Identifier
|
||||
hi! TestHi ctermbg=red
|
||||
|
||||
let hlTestLinkPre = HighlightArgs('TestLink')
|
||||
let hlTestHiPre = HighlightArgs('TestHi')
|
||||
|
||||
" Test colorscheme
|
||||
hi clear
|
||||
if exists('syntax_on')
|
||||
syntax reset
|
||||
endif
|
||||
let g:colors_name = 'test'
|
||||
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
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
@ -750,6 +750,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1693,
|
||||
/**/
|
||||
1692,
|
||||
/**/
|
||||
|
Loading…
x
Reference in New Issue
Block a user