forked from aniani/vim
patch 9.1.1123: popup hi groups not falling back to defaults
Problem: Highlight groups PopupSelected/PopupNotification/ MessageWindow are supposed to fall back to default highlight groups if they are not defined. However, once a colorscheme has defined them, switching to another colorscheme that doesn't do so will leave behind a cleared colorscheme, which causes the fallback to fail. Solution: Set up default links to the relevant fallback highlight groups, which makes sure a `:hi clear` command will reset the state properly (Yee Cheng Chin). closes: #16676 Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
parent
911742a975
commit
e700ddeea4
@ -1,4 +1,4 @@
|
|||||||
*popup.txt* For Vim version 9.1. Last change: 2025 Jan 08
|
*popup.txt* For Vim version 9.1. Last change: 2025 Feb 20
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@ -504,7 +504,7 @@ popup_menu({what}, {options}) *popup_menu()*
|
|||||||
\ mapping: 0,
|
\ mapping: 0,
|
||||||
\ })
|
\ })
|
||||||
< The current line is highlighted with a match using
|
< The current line is highlighted with a match using
|
||||||
"PopupSelected", or "PmenuSel" if that is not defined.
|
|hl-PopupSelected| which is linked to "PmenuSel" by default.
|
||||||
|
|
||||||
Use {options} to change the properties. Should at least set
|
Use {options} to change the properties. Should at least set
|
||||||
"callback" to a function that handles the selected item.
|
"callback" to a function that handles the selected item.
|
||||||
@ -559,7 +559,7 @@ popup_notification({what}, {options}) *popup_notification()*
|
|||||||
\ close: 'click',
|
\ close: 'click',
|
||||||
\ padding: [0,1,0,1],
|
\ padding: [0,1,0,1],
|
||||||
\ })
|
\ })
|
||||||
< The PopupNotification highlight group is used instead of
|
< The |hl-PopupNotification| highlight group is used instead of
|
||||||
WarningMsg if it is defined.
|
WarningMsg if it is defined.
|
||||||
|
|
||||||
Without the |+timers| feature the popup will not disappear
|
Without the |+timers| feature the popup will not disappear
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
*syntax.txt* For Vim version 9.1. Last change: 2025 Jan 20
|
*syntax.txt* For Vim version 9.1. Last change: 2025 Feb 20
|
||||||
|
|
||||||
|
|
||||||
VIM REFERENCE MANUAL by Bram Moolenaar
|
VIM REFERENCE MANUAL by Bram Moolenaar
|
||||||
@ -5831,8 +5831,8 @@ CursorLineSign Like SignColumn when 'cursorline' is set for the cursor line.
|
|||||||
MatchParen Character under the cursor or just before it, if it
|
MatchParen Character under the cursor or just before it, if it
|
||||||
is a paired bracket, and its match. |pi_paren.txt|
|
is a paired bracket, and its match. |pi_paren.txt|
|
||||||
*hl-MessageWindow*
|
*hl-MessageWindow*
|
||||||
MessageWindow Messages popup window used by `:echowindow`. If not defined
|
MessageWindow Messages popup window used by `:echowindow`. Linked to
|
||||||
|hl-WarningMsg| is used.
|
|hl-WarningMsg| by default.
|
||||||
*hl-ModeMsg*
|
*hl-ModeMsg*
|
||||||
ModeMsg 'showmode' message (e.g., "-- INSERT --").
|
ModeMsg 'showmode' message (e.g., "-- INSERT --").
|
||||||
*hl-MsgArea*
|
*hl-MsgArea*
|
||||||
@ -5872,10 +5872,13 @@ PmenuMatchSel Popup menu: Matched text in selected item. Applied in
|
|||||||
combination with |hl-PmenuSel|.
|
combination with |hl-PmenuSel|.
|
||||||
*hl-ComplMatchIns*
|
*hl-ComplMatchIns*
|
||||||
ComplMatchIns Matched text of the currently inserted completion.
|
ComplMatchIns Matched text of the currently inserted completion.
|
||||||
|
*hl-PopupSelected*
|
||||||
|
PopupSelected Popup window created with |popup_menu()|. Linked to
|
||||||
|
|hl-PmenuSel| by default.
|
||||||
*hl-PopupNotification*
|
*hl-PopupNotification*
|
||||||
PopupNotification
|
PopupNotification
|
||||||
Popup window created with |popup_notification()|. If not
|
Popup window created with |popup_notification()|. Linked to
|
||||||
defined |hl-WarningMsg| is used.
|
|hl-WarningMsg| by default.
|
||||||
*hl-Question*
|
*hl-Question*
|
||||||
Question |hit-enter| prompt and yes/no questions.
|
Question |hit-enter| prompt and yes/no questions.
|
||||||
*hl-QuickFixLine*
|
*hl-QuickFixLine*
|
||||||
|
@ -8191,6 +8191,7 @@ hl-PmenuSbar syntax.txt /*hl-PmenuSbar*
|
|||||||
hl-PmenuSel syntax.txt /*hl-PmenuSel*
|
hl-PmenuSel syntax.txt /*hl-PmenuSel*
|
||||||
hl-PmenuThumb syntax.txt /*hl-PmenuThumb*
|
hl-PmenuThumb syntax.txt /*hl-PmenuThumb*
|
||||||
hl-PopupNotification syntax.txt /*hl-PopupNotification*
|
hl-PopupNotification syntax.txt /*hl-PopupNotification*
|
||||||
|
hl-PopupSelected syntax.txt /*hl-PopupSelected*
|
||||||
hl-Question syntax.txt /*hl-Question*
|
hl-Question syntax.txt /*hl-Question*
|
||||||
hl-QuickFixLine syntax.txt /*hl-QuickFixLine*
|
hl-QuickFixLine syntax.txt /*hl-QuickFixLine*
|
||||||
hl-Scrollbar syntax.txt /*hl-Scrollbar*
|
hl-Scrollbar syntax.txt /*hl-Scrollbar*
|
||||||
|
@ -262,6 +262,9 @@ static char *(highlight_init_both[]) = {
|
|||||||
"default link PmenuMatchSel PmenuSel",
|
"default link PmenuMatchSel PmenuSel",
|
||||||
"default link PmenuExtra Pmenu",
|
"default link PmenuExtra Pmenu",
|
||||||
"default link PmenuExtraSel PmenuSel",
|
"default link PmenuExtraSel PmenuSel",
|
||||||
|
"default link PopupSelected PmenuSel",
|
||||||
|
"default link MessageWindow WarningMsg",
|
||||||
|
"default link PopupNotification WarningMsg",
|
||||||
CENT("Normal cterm=NONE", "Normal gui=NONE"),
|
CENT("Normal cterm=NONE", "Normal gui=NONE"),
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
@ -696,9 +696,6 @@ popup_highlight_curline(win_T *wp)
|
|||||||
if (!sign_exists_by_name(sign_name))
|
if (!sign_exists_by_name(sign_name))
|
||||||
{
|
{
|
||||||
char *linehl = "PopupSelected";
|
char *linehl = "PopupSelected";
|
||||||
|
|
||||||
if (syn_name2id((char_u *)linehl) == 0)
|
|
||||||
linehl = "PmenuSel";
|
|
||||||
sign_define_by_name(sign_name, NULL, (char_u *)linehl, NULL, NULL, NULL,
|
sign_define_by_name(sign_name, NULL, (char_u *)linehl, NULL, NULL, NULL,
|
||||||
NULL, SIGN_DEF_PRIO);
|
NULL, SIGN_DEF_PRIO);
|
||||||
}
|
}
|
||||||
@ -2006,10 +2003,8 @@ popup_update_color(win_T *wp, create_type_T type)
|
|||||||
{
|
{
|
||||||
char *hiname = type == TYPE_MESSAGE_WIN
|
char *hiname = type == TYPE_MESSAGE_WIN
|
||||||
? "MessageWindow" : "PopupNotification";
|
? "MessageWindow" : "PopupNotification";
|
||||||
int nr = syn_name2id((char_u *)hiname);
|
|
||||||
|
|
||||||
set_string_option_direct_in_win(wp, (char_u *)"wincolor", -1,
|
set_string_option_direct_in_win(wp, (char_u *)"wincolor", -1,
|
||||||
(char_u *)(nr == 0 ? "WarningMsg" : hiname),
|
(char_u *)hiname,
|
||||||
OPT_FREE|OPT_LOCAL, 0);
|
OPT_FREE|OPT_LOCAL, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
>1+0&#ffffff0| @7|╔+0#e000002&|═@21|╗| +0#0000000&@41
|
>1+0&#ffffff0| @7|╔+0fd7ff255|═@21|╗| +0&#ffffff0@41
|
||||||
|2| @7|║+0#e000002&| |f|i|r|s|t| |n|o|t|i|f|i|c|a|t|i|o|n| @2|║| +0#0000000&@41
|
|2| @7|║+0fd7ff255| |f|i|r|s|t| |n|o|t|i|f|i|c|a|t|i|o|n| @2|║| +0&#ffffff0@41
|
||||||
|3| @7|╚+0#e000002&|═@21|╝| +0#0000000&@41
|
|3| @7|╚+0fd7ff255|═@21|╝| +0&#ffffff0@41
|
||||||
|4| @7|╔+0fd7ff255|═@31|╗| +0&#ffffff0@31
|
|4| @7|╔+0fd7ff255|═@31|╗| +0&#ffffff0@31
|
||||||
|5| @7|║+0fd7ff255| |a|n|o|t|h|e|r| |i|m|p|o|r|t|a|n|t| |n|o|t|i|f|i|c|a|t|i|o|n| |║| +0&#ffffff0@31
|
|5| @7|║+0fd7ff255| |a|n|o|t|h|e|r| |i|m|p|o|r|t|a|n|t| |n|o|t|i|f|i|c|a|t|i|o|n| |║| +0&#ffffff0@31
|
||||||
|6| @7|╚+0fd7ff255|═@31|╝| +0&#ffffff0@31
|
|6| @7|╚+0fd7ff255|═@31|╝| +0&#ffffff0@31
|
||||||
|
@ -704,6 +704,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 */
|
||||||
|
/**/
|
||||||
|
1123,
|
||||||
/**/
|
/**/
|
||||||
1122,
|
1122,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user