Backport monotone defaults

This commit is contained in:
He4eT 2023-03-07 22:54:24 +03:00
commit 0033224767

View file

@ -24,59 +24,90 @@
local lush = require("lush") local lush = require("lush")
local hsl = lush.hsl local hsl = lush.hsl
local offset_fn = "lighten"
-- Config params -- Config params
local params = { local params = {
contrast = (tonumber(vim.g.desolate_contrast) or 120) / 100, contrast = (tonumber(vim.g.desolate_contrast) or 110) / 100,
base_color = hsl( base_color = hsl(
tonumber(vim.g.desolate_h) or 0, tonumber(vim.g.desolate_h) or 15,
tonumber(vim.g.desolate_s) or 0, tonumber(vim.g.desolate_s) or 5,
tonumber(vim.g.desolate_l) or 70), tonumber(vim.g.desolate_l) or 50),
fg = vim.g.desolate_fg or "#cdcdcd", fg = vim.g.desolate_fg,
bg = vim.g.desolate_bg or "#383838", bg = vim.g.desolate_bg,
constant = vim.g.desolate_constant or "#ffd700", constant = vim.g.desolate_constant,
identifier = vim.g.desolate_identifier or "#ffc812", identifier = vim.g.desolate_identifier,
statement = vim.g.desolate_statement or "#ffffff", statement = vim.g.desolate_statement,
error = vim.g.desolate_error or "#ff5111", error = vim.g.desolate_error or '#ff0000',
warning = vim.g.desolate_warning or "#ffc812", warning = vim.g.desolate_warning or '#ffff00',
success = vim.g.desolate_success or "#4e9a06", success = vim.g.desolate_success or '#00ff00',
info = vim.g.desolate_info or "#ffffff", info = vim.g.desolate_info or '#0000ff',
} }
-- Offset function
local offset_fn = "lighten"
if vim.o.background == "light" then
offset_fn = "darken"
params.base_color = params.base_color.darken(50)
end
-- Main colors -- Main colors
local colors = { local colors = {}
nt = params.base_color,
fg = hsl(params.fg),
bg = hsl(params.bg),
constant = hsl(params.constant),
identifier = hsl(params.identifier),
statement = hsl(params.statement),
error = hsl(params.error),
warning = hsl(params.warning),
success = hsl(params.success),
info = hsl(params.info),
}
-- Monochrome shades -- Monochrome shades
local offsets = { 50, 20, 10, 0, -10, -25, -45, -60, -70 }
local shade = function(base_color, contrast, offset) local shade = function(base_color, contrast, offset)
return base_color[offset_fn](contrast * offset) return base_color[offset_fn](contrast * offset)
end end
local offsets = { 50, 20, 10, 0, -10, -25, -45, -60, -70 }
for i, offset in pairs(offsets) do for i, offset in pairs(offsets) do
colors[i] = shade(params.base_color, params.contrast, offset) colors[i] = shade(params.base_color, params.contrast, offset)
end end
-- Logical colors
local useHex = function(hexColor, fallback)
if hexColor then
return hsl(hexColor)
else
return fallback
end
end
colors.nt = params.base_color
colors.fg = useHex(
params.fg,
shade(params.base_color, params.contrast, 100))
colors.bg = useHex(
params.bg,
shade(params.base_color, params.contrast, -100))
colors.constant = useHex(
params.constant,
colors[0])
colors.identifier = useHex(
params.identifier,
colors[1])
colors.statement = useHex(
params.statement,
colors[2])
colors.error = hsl(params.error)
colors.warning = hsl(params.warning)
colors.success = hsl(params.success)
colors.info = hsl(params.info)
-- Highlights
---@diagnostic disable: undefined-global ---@diagnostic disable: undefined-global
return lush(function() return lush(function()
return { return {
@ -284,7 +315,6 @@ return lush(function()
TreesitterContext({ fg = colors[3] }), TreesitterContext({ fg = colors[3] }),
-- Lightspeed -- Lightspeed
LightspeedGreyWash({ Comment }), LightspeedGreyWash({ Comment }),
LightspeedLabel({ fg = colors.statement }), LightspeedLabel({ fg = colors.statement }),
LightspeedOverlapped({ fg = colors.statement.darken(15), gui = "underline" }), LightspeedOverlapped({ fg = colors.statement.darken(15), gui = "underline" }),
@ -297,5 +327,11 @@ return lush(function()
LightspeedOneCharMatch({ LightspeedShortcut, gui = "none" }), LightspeedOneCharMatch({ LightspeedShortcut, gui = "none" }),
LightspeedUniqueChar({ LightspeedUnlabeledMatch }), LightspeedUniqueChar({ LightspeedUnlabeledMatch }),
LightspeedPendingOpArea({ LightspeedShortcut, gui = "underline" }), LightspeedPendingOpArea({ LightspeedShortcut, gui = "underline" }),
-- Leap
LeapBackdrop({ Comment }),
LeapLabelPrimary({ Identifier }),
LeapMatch({ Constant }),
LeapLabelSecondary({ Statement }),
} }
end) end)