Merge #4851
This commit is contained in:
commit
1e93e24f5e
|
@ -6952,8 +6952,23 @@ highlight_color (
|
|||
else if (!(TOLOWER_ASC(what[0]) == 'b' && TOLOWER_ASC(what[1]) == 'g'))
|
||||
return NULL;
|
||||
if (modec == 'g') {
|
||||
if (fg)
|
||||
if (what[2] == '#' && ui_rgb_attached()) {
|
||||
if (fg) {
|
||||
n = HL_TABLE()[id - 1].sg_rgb_fg;
|
||||
} else if (sp) {
|
||||
n = HL_TABLE()[id - 1].sg_rgb_sp;
|
||||
} else {
|
||||
n = HL_TABLE()[id - 1].sg_rgb_bg;
|
||||
}
|
||||
if (n < 0 || n > 0xffffff) {
|
||||
return NULL;
|
||||
}
|
||||
snprintf((char *)name, sizeof(name), "#%06x", n);
|
||||
return name;
|
||||
}
|
||||
if (fg) {
|
||||
return HL_TABLE()[id - 1].sg_rgb_fg_name;
|
||||
}
|
||||
if (sp) {
|
||||
return HL_TABLE()[id - 1].sg_rgb_sp_name;
|
||||
}
|
||||
|
|
|
@ -165,24 +165,49 @@ end)
|
|||
|
||||
describe('synIDattr()', function()
|
||||
local screen
|
||||
|
||||
before_each(function()
|
||||
clear()
|
||||
screen = Screen.new(50, 7)
|
||||
execute('highlight Normal ctermfg=1 guifg=#ff0000')
|
||||
execute('highlight Normal ctermfg=252 guifg=#ff0000 guibg=Black')
|
||||
-- Salmon #fa8072 Maroon #800000
|
||||
execute('highlight Keyword ctermfg=79 guifg=Salmon guisp=Maroon')
|
||||
end)
|
||||
|
||||
after_each(function()
|
||||
screen:detach()
|
||||
it('returns cterm-color if RGB-capable UI is _not_ attached', function()
|
||||
eq('252', eval('synIDattr(hlID("Normal"), "fg")'))
|
||||
eq('252', eval('synIDattr(hlID("Normal"), "fg#")'))
|
||||
eq('-1', eval('synIDattr(hlID("Normal"), "bg")'))
|
||||
eq('-1', eval('synIDattr(hlID("Normal"), "bg#")'))
|
||||
eq('79', eval('synIDattr(hlID("Keyword"), "fg")'))
|
||||
eq('79', eval('synIDattr(hlID("Keyword"), "fg#")'))
|
||||
eq('', eval('synIDattr(hlID("Keyword"), "sp")'))
|
||||
eq('', eval('synIDattr(hlID("Keyword"), "sp#")'))
|
||||
end)
|
||||
|
||||
it('returns RGB number if GUI', function()
|
||||
it('returns gui-color if "gui" arg is passed', function()
|
||||
eq('Black', eval('synIDattr(hlID("Normal"), "bg", "gui")'))
|
||||
eq('Maroon', eval('synIDattr(hlID("Keyword"), "sp", "gui")'))
|
||||
end)
|
||||
|
||||
it('returns gui-color if RGB-capable UI is attached', function()
|
||||
screen:attach(true)
|
||||
eq('#ff0000', eval('synIDattr(hlID("Normal"), "fg")'))
|
||||
eq('#ff0000', eval('synIDattr(hlID("Normal"), "fg")'))
|
||||
eq('Black', eval('synIDattr(hlID("Normal"), "bg")'))
|
||||
eq('Salmon', eval('synIDattr(hlID("Keyword"), "fg")'))
|
||||
eq('Maroon', eval('synIDattr(hlID("Keyword"), "sp")'))
|
||||
end)
|
||||
|
||||
it('returns #RRGGBB value for fg#/bg#/sp#', function()
|
||||
screen:attach(true)
|
||||
eq('#ff0000', eval('synIDattr(hlID("Normal"), "fg#")'))
|
||||
eq('#000000', eval('synIDattr(hlID("Normal"), "bg#")'))
|
||||
eq('#fa8072', eval('synIDattr(hlID("Keyword"), "fg#")'))
|
||||
eq('#800000', eval('synIDattr(hlID("Keyword"), "sp#")'))
|
||||
end)
|
||||
|
||||
it('returns color number if non-GUI', function()
|
||||
screen:attach(false)
|
||||
eq('1', eval('synIDattr(hlID("Normal"), "fg")'))
|
||||
eq('252', eval('synIDattr(hlID("Normal"), "fg")'))
|
||||
eq('79', eval('synIDattr(hlID("Keyword"), "fg")'))
|
||||
end)
|
||||
end)
|
||||
|
|
|
@ -38,7 +38,6 @@ describe('manual syntax highlight', function()
|
|||
os.remove('Xtest-functional-ui-highlight.tmp.vim')
|
||||
end)
|
||||
|
||||
-- test with "set hidden" even if the bug did not occur this way
|
||||
it("works with buffer switch and 'hidden'", function()
|
||||
execute('e tmp1.vim')
|
||||
execute('e Xtest-functional-ui-highlight.tmp.vim')
|
||||
|
|
Loading…
Reference in New Issue