Skip to content

Commit

Permalink
fix(shader): handle cases when one of the colors is NONE (transparent) (
Browse files Browse the repository at this point in the history
#71)

* fix(shader): handle cases when one of the shade colors is NONE (transparent)

* remove no longer necessary `fallback_if_none` functionality in custom groups

No longer needed with the new change in shader.
  • Loading branch information
ramojus authored Oct 27, 2024
1 parent 7fbcccd commit 03243c5
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 10 deletions.
10 changes: 0 additions & 10 deletions lua/mellifluous/highlights/custom_groups.lua
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
local M = {}

local function fallback_if_none(color, fallback_color)
if type(color) == "string" and color == "NONE" then
return fallback_color
end
return color
end

-- Any shared highlight groups that cannot be found in general highlights or
-- treesitter highlights are created here.
function M.get(colors)
Expand All @@ -17,11 +10,9 @@ function M.get(colors)
MainKeyword = { fg = colors.main_keywords, style = config.styles.main_keywords or {} },

IndentLine = function(bg)
bg = fallback_if_none(bg, colors.bg)
return { fg = shader.replicate_shade(colors.bg, colors.fg5, bg) }
end,
IndentLineInactive = function(bg)
bg = fallback_if_none(bg, colors.bg)
return {
fg = config.is_bg_dark and shader.replicate_shade(colors.bg, colors.bg4, bg)
or shader.replicate_shade(colors.bg, colors.dark_bg2, bg),
Expand All @@ -30,7 +21,6 @@ function M.get(colors)

MenuButton = { fg = colors.ui_blue },
MenuButtonSelected = function(bg)
bg = fallback_if_none(bg, colors.bg)
local applied_bg = config.is_bg_dark and shader.replicate_shade(colors.bg, colors.bg4, bg)
or shader.replicate_shade(colors.bg, colors.dark_bg2, bg)
return {
Expand Down
1 change: 1 addition & 0 deletions lua/mellifluous/init.lua
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ function M.load()
local colors = require("mellifluous.colors").get_colors()
local highlighter = require("mellifluous.utils.highlighter")

require("mellifluous.utils.shader").set_background_color(colors.bg)
require("mellifluous.highlights").set(highlighter, colors)
require("mellifluous.config").set_highlight_overrides(highlighter, colors)

Expand Down
11 changes: 11 additions & 0 deletions lua/mellifluous/utils/shader.lua
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
local M = {}

local bg_color

local function clip(val, from, to)
if val > to then
return to
Expand All @@ -10,6 +12,11 @@ local function clip(val, from, to)
end

function M.replicate_shade(from_color, to_color, target)
-- assume bg_color for any transparent colors
from_color = from_color ~= "NONE" and from_color or bg_color
to_color = to_color ~= "NONE" and to_color or bg_color
target = target ~= "NONE" and target or bg_color

local from_hsl = from_color:get_hsl()
local to_hsl = to_color:get_hsl()
local color = require("mellifluous.color")
Expand Down Expand Up @@ -52,4 +59,8 @@ function M.get_higher_contrast(color, amount)
return color:darkened(amount)
end

function M.set_background_color(new_bg_color)
bg_color = new_bg_color
end

return M

0 comments on commit 03243c5

Please sign in to comment.