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)))
|
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;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1629,7 +1630,8 @@ restore_cterm_colors(void)
|
|||||||
static int
|
static int
|
||||||
hl_has_settings(int idx, int check_link)
|
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_attr != 0
|
||||||
|| HL_TABLE()[idx].sg_cterm_fg != 0
|
|| HL_TABLE()[idx].sg_cterm_fg != 0
|
||||||
|| HL_TABLE()[idx].sg_cterm_bg != 0
|
|| HL_TABLE()[idx].sg_cterm_bg != 0
|
||||||
|
@ -832,4 +832,36 @@ func Test_highlight_term_attr()
|
|||||||
hi clear
|
hi clear
|
||||||
endfunc
|
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
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@ -750,6 +750,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1693,
|
||||||
/**/
|
/**/
|
||||||
1692,
|
1692,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user