fix(highlight): omit DiffsClear bg on transparent themes (#179)
This commit is contained in:
parent
59714381f1
commit
c7cd8fc24c
2 changed files with 18 additions and 3 deletions
|
|
@ -528,7 +528,11 @@ local function compute_highlight_groups(is_default)
|
||||||
local blended_add_text = blend_color(add_bg, bg, text_alpha)
|
local blended_add_text = blend_color(add_bg, bg, text_alpha)
|
||||||
local blended_del_text = blend_color(del_bg, bg, text_alpha)
|
local blended_del_text = blend_color(del_bg, bg, text_alpha)
|
||||||
|
|
||||||
vim.api.nvim_set_hl(0, 'DiffsClear', { default = dflt, fg = normal_fg, bg = bg })
|
local clear_hl = { default = dflt, fg = normal_fg }
|
||||||
|
if not transparent then
|
||||||
|
clear_hl.bg = bg
|
||||||
|
end
|
||||||
|
vim.api.nvim_set_hl(0, 'DiffsClear', clear_hl)
|
||||||
vim.api.nvim_set_hl(0, 'DiffsAdd', { default = dflt, bg = blended_add })
|
vim.api.nvim_set_hl(0, 'DiffsAdd', { default = dflt, bg = blended_add })
|
||||||
vim.api.nvim_set_hl(0, 'DiffsDelete', { default = dflt, bg = blended_del })
|
vim.api.nvim_set_hl(0, 'DiffsDelete', { default = dflt, bg = blended_del })
|
||||||
vim.api.nvim_set_hl(0, 'DiffsAddNr', { default = dflt, fg = add_fg, bg = blended_add })
|
vim.api.nvim_set_hl(0, 'DiffsAddNr', { default = dflt, fg = add_fg, bg = blended_add })
|
||||||
|
|
|
||||||
|
|
@ -554,7 +554,7 @@ describe('diffs', function()
|
||||||
diffs._test.set_hl_retry_pending(false)
|
diffs._test.set_hl_retry_pending(false)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
it('uses dark fallback bg for DiffsClear when Normal.bg is nil (transparent)', function()
|
it('omits DiffsClear.bg when Normal.bg is nil (transparent)', function()
|
||||||
vim.api.nvim_get_hl = function(ns, opts)
|
vim.api.nvim_get_hl = function(ns, opts)
|
||||||
if opts.name == 'Normal' then
|
if opts.name == 'Normal' then
|
||||||
return { fg = 0xc0c0c0 }
|
return { fg = 0xc0c0c0 }
|
||||||
|
|
@ -562,11 +562,22 @@ describe('diffs', function()
|
||||||
return saved_get_hl(ns, opts)
|
return saved_get_hl(ns, opts)
|
||||||
end
|
end
|
||||||
diffs._test.compute_highlight_groups()
|
diffs._test.compute_highlight_groups()
|
||||||
assert.are.equal(0x1a1a1a, set_calls.DiffsClear.bg)
|
assert.is_nil(set_calls.DiffsClear.bg)
|
||||||
assert.is_table(set_calls.DiffsAdd)
|
assert.is_table(set_calls.DiffsAdd)
|
||||||
assert.is_table(set_calls.DiffsDelete)
|
assert.is_table(set_calls.DiffsDelete)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
it('sets DiffsClear.bg to Normal.bg on opaque themes', function()
|
||||||
|
vim.api.nvim_get_hl = function(ns, opts)
|
||||||
|
if opts.name == 'Normal' then
|
||||||
|
return { fg = 0xebdbb2, bg = 0x282828 }
|
||||||
|
end
|
||||||
|
return saved_get_hl(ns, opts)
|
||||||
|
end
|
||||||
|
diffs._test.compute_highlight_groups()
|
||||||
|
assert.are.equal(0x282828, set_calls.DiffsClear.bg)
|
||||||
|
end)
|
||||||
|
|
||||||
it('blend_alpha controls DiffsAdd.bg intensity', function()
|
it('blend_alpha controls DiffsAdd.bg intensity', function()
|
||||||
local saved_config_alpha = diffs._test.get_config().highlights.blend_alpha
|
local saved_config_alpha = diffs._test.get_config().highlights.blend_alpha
|
||||||
diffs._test.get_config().highlights.blend_alpha = 0.3
|
diffs._test.get_config().highlights.blend_alpha = 0.3
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue