mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Merge pull request #9603 from bfredl/reversepum
highlight: handle blending with gui=reverse and guisp attribute
This commit is contained in:
commit
5e44a5945a
@ -314,6 +314,14 @@ static HlAttrs get_colors_force(int attr)
|
|||||||
}
|
}
|
||||||
HL_SET_DEFAULT_COLORS(attrs.rgb_fg_color, attrs.rgb_bg_color,
|
HL_SET_DEFAULT_COLORS(attrs.rgb_fg_color, attrs.rgb_bg_color,
|
||||||
attrs.rgb_sp_color);
|
attrs.rgb_sp_color);
|
||||||
|
|
||||||
|
if (attrs.rgb_ae_attr & HL_INVERSE) {
|
||||||
|
int temp = attrs.rgb_bg_color;
|
||||||
|
attrs.rgb_bg_color = attrs.rgb_fg_color;
|
||||||
|
attrs.rgb_fg_color = temp;
|
||||||
|
attrs.rgb_ae_attr &= ~HL_INVERSE;
|
||||||
|
}
|
||||||
|
|
||||||
return attrs;
|
return attrs;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -338,6 +346,13 @@ int hl_blend_attrs(int back_attr, int front_attr, bool through)
|
|||||||
cattrs = battrs;
|
cattrs = battrs;
|
||||||
cattrs.rgb_fg_color = rgb_blend((int)p_pb, battrs.rgb_fg_color,
|
cattrs.rgb_fg_color = rgb_blend((int)p_pb, battrs.rgb_fg_color,
|
||||||
fattrs.rgb_bg_color);
|
fattrs.rgb_bg_color);
|
||||||
|
if (cattrs.rgb_ae_attr & (HL_UNDERLINE|HL_UNDERCURL)) {
|
||||||
|
cattrs.rgb_sp_color = rgb_blend((int)p_pb, battrs.rgb_sp_color,
|
||||||
|
fattrs.rgb_bg_color);
|
||||||
|
} else {
|
||||||
|
cattrs.rgb_sp_color = -1;
|
||||||
|
}
|
||||||
|
|
||||||
cattrs.cterm_bg_color = fattrs.cterm_bg_color;
|
cattrs.cterm_bg_color = fattrs.cterm_bg_color;
|
||||||
cattrs.cterm_fg_color = fattrs.cterm_bg_color;
|
cattrs.cterm_fg_color = fattrs.cterm_bg_color;
|
||||||
} else {
|
} else {
|
||||||
@ -347,6 +362,12 @@ int hl_blend_attrs(int back_attr, int front_attr, bool through)
|
|||||||
}
|
}
|
||||||
cattrs.rgb_fg_color = rgb_blend((int)p_pb/2, battrs.rgb_fg_color,
|
cattrs.rgb_fg_color = rgb_blend((int)p_pb/2, battrs.rgb_fg_color,
|
||||||
fattrs.rgb_fg_color);
|
fattrs.rgb_fg_color);
|
||||||
|
if (cattrs.rgb_ae_attr & (HL_UNDERLINE|HL_UNDERCURL)) {
|
||||||
|
cattrs.rgb_sp_color = rgb_blend((int)p_pb/2, battrs.rgb_bg_color,
|
||||||
|
fattrs.rgb_sp_color);
|
||||||
|
} else {
|
||||||
|
cattrs.rgb_sp_color = -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
cattrs.rgb_bg_color = rgb_blend((int)p_pb, battrs.rgb_bg_color,
|
cattrs.rgb_bg_color = rgb_blend((int)p_pb, battrs.rgb_bg_color,
|
||||||
fattrs.rgb_bg_color);
|
fattrs.rgb_bg_color);
|
||||||
|
@ -1281,42 +1281,45 @@ describe('builtin popupmenu', function()
|
|||||||
[3] = {bold = true, foreground = Screen.colors.Brown},
|
[3] = {bold = true, foreground = Screen.colors.Brown},
|
||||||
[4] = {foreground = Screen.colors.Blue1},
|
[4] = {foreground = Screen.colors.Blue1},
|
||||||
[5] = {reverse = true},
|
[5] = {reverse = true},
|
||||||
[6] = {background = Screen.colors.Gray55, foreground = Screen.colors.Grey45, special = Screen.colors.Red},
|
[6] = {background = Screen.colors.Gray55, foreground = Screen.colors.Grey45},
|
||||||
[7] = {background = Screen.colors.Gray55, foreground = Screen.colors.Grey0, special = Screen.colors.Red},
|
[7] = {background = Screen.colors.Gray55, foreground = Screen.colors.Grey0},
|
||||||
[8] = {background = tonumber('0x191919'), foreground = Screen.colors.Grey0, special = Screen.colors.Red},
|
[8] = {background = tonumber('0x191919'), foreground = Screen.colors.Grey0},
|
||||||
[9] = {background = tonumber('0xffc1ff'), foreground = tonumber('0xe5a8e5'), special = Screen.colors.Red},
|
[9] = {background = tonumber('0xffc1ff'), foreground = tonumber('0xe5a8e5')},
|
||||||
[10] = {background = tonumber('0xffc1ff'), foreground = Screen.colors.Grey0, special = Screen.colors.Red},
|
[10] = {background = tonumber('0xffc1ff'), foreground = Screen.colors.Grey0},
|
||||||
[11] = {foreground = tonumber('0xe5a8e5'), special = Screen.colors.Red, background = tonumber('0xffc1ff'), reverse = true, bold = true},
|
[11] = {foreground = tonumber('0xffc1ff'), background = tonumber('0xe5a8e5'), bold = true},
|
||||||
[12] = {foreground = Screen.colors.Grey45, special = Screen.colors.Red, background = Screen.colors.Gray55, reverse = true, bold = true},
|
[12] = {foreground = Screen.colors.Grey55, background = Screen.colors.Gray45, bold = true},
|
||||||
[13] = {background = tonumber('0xffc1e5'), foreground = Screen.colors.Grey0, special = Screen.colors.Red},
|
[13] = {background = tonumber('0xffc1e5'), foreground = Screen.colors.Grey0},
|
||||||
[14] = {background = tonumber('0xffc1e5'), foreground = tonumber('0xe5a8e5'), special = Screen.colors.Red},
|
[14] = {background = tonumber('0xffc1e5'), foreground = tonumber('0xe5a8e5')},
|
||||||
[15] = {background = tonumber('0xffc1ff'), foreground = tonumber('0x080202'), special = Screen.colors.Red},
|
[15] = {background = tonumber('0xffc1ff'), foreground = tonumber('0x080202')},
|
||||||
[16] = {special = Screen.colors.Red, background = tonumber('0xffc1ff'), bold = true, foreground = tonumber('0xf6ace9')},
|
[16] = {background = tonumber('0xffc1ff'), bold = true, foreground = tonumber('0xf6ace9')},
|
||||||
[17] = {background = tonumber('0xffc1ff'), foreground = tonumber('0xe5a8ff'), special = Screen.colors.Red},
|
[17] = {background = tonumber('0xffc1ff'), foreground = tonumber('0xe5a8ff')},
|
||||||
[18] = {special = Screen.colors.Red, background = tonumber('0xffc1ff'), reverse = true, foreground = tonumber('0xe5a8e5')},
|
[18] = {background = tonumber('0xe5a8e5'), foreground = tonumber('0xffc1ff')},
|
||||||
[19] = {special = Screen.colors.Red, background = Screen.colors.Gray55, reverse = true, foreground = Screen.colors.Grey45},
|
[19] = {background = Screen.colors.Gray45, foreground = Screen.colors.Grey55},
|
||||||
[20] = {bold = true},
|
[20] = {bold = true},
|
||||||
[21] = {bold = true, foreground = Screen.colors.SeaGreen4},
|
[21] = {bold = true, foreground = Screen.colors.SeaGreen4},
|
||||||
[22] = {background = Screen.colors.WebGray},
|
[22] = {background = Screen.colors.WebGray},
|
||||||
[23] = {background = Screen.colors.Grey0},
|
[23] = {background = Screen.colors.Grey0},
|
||||||
[24] = {background = Screen.colors.LightMagenta},
|
[24] = {background = Screen.colors.LightMagenta},
|
||||||
[25] = {background = Screen.colors.Gray75, foreground = Screen.colors.Grey25, special = Screen.colors.Red},
|
[25] = {background = Screen.colors.Gray75, foreground = Screen.colors.Grey25},
|
||||||
[26] = {background = Screen.colors.Gray75, foreground = Screen.colors.Grey0, special = Screen.colors.Red},
|
[26] = {background = Screen.colors.Gray75, foreground = Screen.colors.Grey0},
|
||||||
[27] = {background = Screen.colors.Gray50, foreground = Screen.colors.Grey0, special = Screen.colors.Red},
|
[27] = {background = Screen.colors.Gray50, foreground = Screen.colors.Grey0},
|
||||||
[28] = {background = tonumber('0xffddff'), foreground = tonumber('0x7f5d7f'), special = Screen.colors.Red},
|
[28] = {background = tonumber('0xffddff'), foreground = tonumber('0x7f5d7f')},
|
||||||
[29] = {background = tonumber('0xffddff'), foreground = Screen.colors.Grey0, special = Screen.colors.Red},
|
[29] = {background = tonumber('0xffddff'), foreground = Screen.colors.Grey0},
|
||||||
[30] = {foreground = tonumber('0x7f5d7f'), special = Screen.colors.Red, background = tonumber('0xffddff'), reverse = true, bold = true},
|
[30] = {foreground = tonumber('0xffddff'), background = tonumber('0x7f5d7f'), bold = true},
|
||||||
[31] = {foreground = Screen.colors.Grey0, special = Screen.colors.Red, background = tonumber('0xffddff'), reverse = true, bold = true},
|
[31] = {foreground = tonumber('0xffddff'), background = Screen.colors.Grey0, bold = true},
|
||||||
[32] = {foreground = Screen.colors.Grey25, special = Screen.colors.Red, background = Screen.colors.Gray75, reverse = true, bold = true},
|
[32] = {foreground = Screen.colors.Gray75, background = Screen.colors.Grey25, bold = true},
|
||||||
[33] = {background = tonumber('0xffdd7f'), foreground = Screen.colors.Grey0, special = Screen.colors.Red},
|
[33] = {background = tonumber('0xffdd7f'), foreground = Screen.colors.Grey0},
|
||||||
[34] = {background = tonumber('0xffdd7f'), foreground = tonumber('0x7f5d7f'), special = Screen.colors.Red},
|
[34] = {background = tonumber('0xffdd7f'), foreground = tonumber('0x7f5d7f')},
|
||||||
[35] = {special = Screen.colors.Red, background = tonumber('0xffddff'), bold = true, foreground = tonumber('0x290a0a')},
|
[35] = {background = tonumber('0xffddff'), bold = true, foreground = tonumber('0x290a0a')},
|
||||||
[36] = {special = Screen.colors.Red, background = tonumber('0xffddff'), bold = true, foreground = tonumber('0xd27294')},
|
[36] = {background = tonumber('0xffddff'), bold = true, foreground = tonumber('0xd27294')},
|
||||||
[37] = {background = tonumber('0xffddff'), foreground = tonumber('0x7f5dff'), special = Screen.colors.Red},
|
[37] = {background = tonumber('0xffddff'), foreground = tonumber('0x7f5dff')},
|
||||||
[38] = {special = Screen.colors.Red, background = tonumber('0xffddff'), reverse = true, foreground = tonumber('0x7f5d7f')},
|
[38] = {background = tonumber('0x7f5d7f'), foreground = tonumber('0xffddff')},
|
||||||
[39] = {special = Screen.colors.Red, background = tonumber('0xffddff'), reverse = true, foreground = Screen.colors.Grey0},
|
[39] = {background = Screen.colors.Grey0, foreground = tonumber('0xffddff')},
|
||||||
[40] = {special = Screen.colors.Red, background = Screen.colors.Gray75, reverse = true, foreground = Screen.colors.Grey25},
|
[40] = {background = Screen.colors.Gray25, foreground = Screen.colors.Grey75},
|
||||||
[41] = {background = tonumber('0xffddff'), foreground = tonumber('0x00003f'), special = Screen.colors.Red},
|
[41] = {background = tonumber('0xffddff'), foreground = tonumber('0x00003f')},
|
||||||
|
[42] = {foreground = tonumber('0x0c0c0c'), background = tonumber('0xe5a8e5')},
|
||||||
|
[43] = {background = tonumber('0x7f5d7f'), bold = true, foreground = tonumber('0x3f3f3f')},
|
||||||
|
[44] = {foreground = tonumber('0x3f3f3f'), background = tonumber('0x7f5d7f')},
|
||||||
})
|
})
|
||||||
command('syntax on')
|
command('syntax on')
|
||||||
command('set mouse=a')
|
command('set mouse=a')
|
||||||
@ -1363,13 +1366,13 @@ describe('builtin popupmenu', function()
|
|||||||
incidid{6:u}{7:incididunt}{6:re et}{8: }d{1:ol}ore magna aliqua. |
|
incidid{6:u}{7:incididunt}{6:re et}{8: }d{1:ol}ore magna aliqua. |
|
||||||
Ut enim{9: }{10:ut}{9: minim veniam}{6:,} quis nostrud |
|
Ut enim{9: }{10:ut}{9: minim veniam}{6:,} quis nostrud |
|
||||||
exercit{9:a}{10:labore}{9:llamco la}{6:b}oris nisi ut aliquip ex |
|
exercit{9:a}{10:labore}{9:llamco la}{6:b}oris nisi ut aliquip ex |
|
||||||
{2:[No Nam}{11:e}{10:et}{11:[+] }{12: }{2: }|
|
{2:[No Nam}{11:e}{42:et}{11:[+] }{12: }{2: }|
|
||||||
Lorem i{9:p}{10:dolor}{13:e}{14:l}{9:or sit a}{6:m}et, consectetur |
|
Lorem i{9:p}{10:dolor}{13:e}{14:l}{9:or sit a}{6:m}et, consectetur |
|
||||||
adipisi{9:c}{10:magn}{15:a}{16:l}{9:it, sed d}{6:o} eiusmod tempor |
|
adipisi{9:c}{10:magn}{15:a}{16:l}{9:it, sed d}{6:o} eiusmod tempor |
|
||||||
bla bla{9: }{10:aliqua}{9:dunt }{6: } |
|
bla bla{9: }{10:aliqua}{9:dunt }{6: } |
|
||||||
incidid{9:u}{10:Ut}{9: }{17:ut}{9: labore et}{6: }d{1:ol}ore magna aliqua. |
|
incidid{9:u}{10:Ut}{9: }{17:ut}{9: labore et}{6: }d{1:ol}ore magna aliqua. |
|
||||||
Ut enim{9: }{10:enim}{9:inim veniam}{6:,} quis nostrud |
|
Ut enim{9: }{10:enim}{9:inim veniam}{6:,} quis nostrud |
|
||||||
{5:[No Nam}{18:e}{10:ad}{18:[+] }{19: }{5: }|
|
{5:[No Nam}{18:e}{42:ad}{18:[+] }{19: }{5: }|
|
||||||
{20:-- Keyword Local completion (^N^P) }{21:match 1 of 65} |
|
{20:-- Keyword Local completion (^N^P) }{21:match 1 of 65} |
|
||||||
]])
|
]])
|
||||||
|
|
||||||
@ -1399,13 +1402,13 @@ describe('builtin popupmenu', function()
|
|||||||
incidid{25:u}{26:incididunt}{25:re et}{27: }d{1:ol}ore magna aliqua. |
|
incidid{25:u}{26:incididunt}{25:re et}{27: }d{1:ol}ore magna aliqua. |
|
||||||
Ut enim{28: }{29:ut}{28: minim veniam}{25:,} quis nostrud |
|
Ut enim{28: }{29:ut}{28: minim veniam}{25:,} quis nostrud |
|
||||||
exercit{28:a}{29:labore}{28:llamco la}{25:b}oris nisi ut aliquip ex |
|
exercit{28:a}{29:labore}{28:llamco la}{25:b}oris nisi ut aliquip ex |
|
||||||
{2:[No Nam}{30:e}{31:et}{30:[+] }{32: }{2: }|
|
{2:[No Nam}{30:e}{43:et}{30:[+] }{32: }{2: }|
|
||||||
Lorem i{28:p}{29:dolor}{33:e}{34:l}{28:or sit a}{25:m}et, consectetur |
|
Lorem i{28:p}{29:dolor}{33:e}{34:l}{28:or sit a}{25:m}et, consectetur |
|
||||||
adipisi{28:c}{29:magn}{35:a}{36:l}{28:it, sed d}{25:o} eiusmod tempor |
|
adipisi{28:c}{29:magn}{35:a}{36:l}{28:it, sed d}{25:o} eiusmod tempor |
|
||||||
bla bla{28: }{29:aliqua}{28:dunt }{25: } |
|
bla bla{28: }{29:aliqua}{28:dunt }{25: } |
|
||||||
incidid{28:u}{29:Ut}{28: }{37:ut}{28: labore et}{25: }d{1:ol}ore magna aliqua. |
|
incidid{28:u}{29:Ut}{28: }{37:ut}{28: labore et}{25: }d{1:ol}ore magna aliqua. |
|
||||||
Ut enim{28: }{29:enim}{28:inim veniam}{25:,} quis nostrud |
|
Ut enim{28: }{29:enim}{28:inim veniam}{25:,} quis nostrud |
|
||||||
{5:[No Nam}{38:e}{39:ad}{38:[+] }{40: }{5: }|
|
{5:[No Nam}{38:e}{44:ad}{38:[+] }{40: }{5: }|
|
||||||
{20:-- Keyword Local completion (^N^P) }{21:match 1 of 65} |
|
{20:-- Keyword Local completion (^N^P) }{21:match 1 of 65} |
|
||||||
]])
|
]])
|
||||||
|
|
||||||
@ -1417,13 +1420,13 @@ describe('builtin popupmenu', function()
|
|||||||
incidid{25:u}{26:incididunt}{25:re et}{27: }d{1:ol}ore magna aliqua. |
|
incidid{25:u}{26:incididunt}{25:re et}{27: }d{1:ol}ore magna aliqua. |
|
||||||
Ut enim{28: }{29:ut}{28: minim veniam}{25:,} quis nostrud |
|
Ut enim{28: }{29:ut}{28: minim veniam}{25:,} quis nostrud |
|
||||||
exercit{28:a}{29:labore}{28:llamco la}{25:b}oris nisi ut aliquip ex |
|
exercit{28:a}{29:labore}{28:llamco la}{25:b}oris nisi ut aliquip ex |
|
||||||
{2:[No Nam}{30:e}{31:et}{30:[+] }{32: }{2: }|
|
{2:[No Nam}{30:e}{43:et}{30:[+] }{32: }{2: }|
|
||||||
incidid{28:u}{29:dol}{41:or}{29:e}{28:labore et}{25: }d{1:ol}ore magna aliqua. |
|
incidid{28:u}{29:dol}{41:or}{29:e}{28:labore et}{25: }d{1:ol}ore magna aliqua. |
|
||||||
Ut enim{28: }{29:magna}{28:nim veniam}{25:,} quis nostrud |
|
Ut enim{28: }{29:magna}{28:nim veniam}{25:,} quis nostrud |
|
||||||
exercit{28:a}{29:aliqua}{28:llamco la}{25:b}oris nisi {4:ut} aliquip ex |
|
exercit{28:a}{29:aliqua}{28:llamco la}{25:b}oris nisi {4:ut} aliquip ex |
|
||||||
ea comm{28:o}{29:Ut}{28: consequat. D}{25:u}is a{4:ut}e irure d{1:ol}or in |
|
ea comm{28:o}{29:Ut}{28: consequat. D}{25:u}is a{4:ut}e irure d{1:ol}or in |
|
||||||
reprehe{28:n}{29:enim}{28:t in v}{34:ol}{28:upt}{25:a}te v{3:el}it esse cillum |
|
reprehe{28:n}{29:enim}{28:t in v}{34:ol}{28:upt}{25:a}te v{3:el}it esse cillum |
|
||||||
{5:[No Nam}{38:e}{39:ad}{38:[+] }{40: }{5: }|
|
{5:[No Nam}{38:e}{44:ad}{38:[+] }{40: }{5: }|
|
||||||
{20:-- Keyword Local completion (^N^P) }{21:match 1 of 65} |
|
{20:-- Keyword Local completion (^N^P) }{21:match 1 of 65} |
|
||||||
]])
|
]])
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user