File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -729,7 +729,8 @@ do_highlight(
729729
730730 if (!ends_excmd2 (line , skipwhite (to_end )))
731731 {
732- semsg (_ ("E413: Too many arguments: \":highlight link %s\"" ), from_start );
732+ semsg (_ ("E413: Too many arguments: \":highlight link %s\"" ),
733+ from_start );
733734 return ;
734735 }
735736
@@ -1629,7 +1630,8 @@ restore_cterm_colors(void)
16291630 static int
16301631hl_has_settings (int idx , int check_link )
16311632{
1632- return ( HL_TABLE ()[idx ].sg_term_attr != 0
1633+ return HL_TABLE ()[idx ].sg_cleared == 0
1634+ && ( HL_TABLE ()[idx ].sg_term_attr != 0
16331635 || HL_TABLE ()[idx ].sg_cterm_attr != 0
16341636 || HL_TABLE ()[idx ].sg_cterm_fg != 0
16351637 || HL_TABLE ()[idx ].sg_cterm_bg != 0
Original file line number Diff line number Diff line change @@ -832,4 +832,36 @@ func Test_highlight_term_attr()
832832 hi clear
833833endfunc
834834
835+ " Test default highlighting is restored
836+ func Test_highlight_restore_defaults ()
837+ hi ! link TestLink Identifier
838+ hi ! TestHi ctermbg= red
839+
840+ let hlTestLinkPre = HighlightArgs (' TestLink' )
841+ let hlTestHiPre = HighlightArgs (' TestHi' )
842+
843+ " Test colorscheme
844+ hi clear
845+ if exists (' syntax_on' )
846+ syntax reset
847+ endif
848+ let g: colors_name = ' test'
849+ hi ! link TestLink ErrorMsg
850+ hi ! TestHi ctermbg= green
851+
852+ " Restore default highlighting
853+ colorscheme default
854+ syntax on
855+ " 'default' should work no matter if highlight group was cleared
856+ hi def link TestLink Identifier
857+ hi def TestHi ctermbg= red
858+
859+ let hlTestLinkPost = HighlightArgs (' TestLink' )
860+ let hlTestHiPost = HighlightArgs (' TestHi' )
861+
862+ call assert_equal (hlTestLinkPre, hlTestLinkPost)
863+ call assert_equal (hlTestHiPre, hlTestHiPost)
864+ hi clear
865+ endfunc
866+
835867" vim: shiftwidth = 2 sts = 2 expandtab
Original file line number Diff line number Diff line change @@ -750,6 +750,8 @@ static char *(features[]) =
750750
751751static int included_patches [] =
752752{ /* Add new patch number below this line */
753+ /**/
754+ 1693 ,
753755/**/
754756 1692 ,
755757/**/
You can’t perform that action at this time.
0 commit comments