neovim-rose-pine/lua/rose-pine/plugins/lualine.lua
2024-05-10 12:08:23 -05:00

125 lines
3 KiB
Lua

local palette = require("rose-pine.palette")
local generator = {}
function generator.alternate(p)
return {
normal = {
a = { bg = p.surface, fg = p.rose, gui = "bold" },
b = { bg = p.surface, fg = p.text },
c = { bg = p.surface, fg = p.subtle, gui = "italic" },
},
insert = {
a = { bg = p.surface, fg = p.foam, gui = "bold" },
},
visual = {
a = { bg = p.surface, fg = p.iris, gui = "bold" },
},
replace = {
a = { bg = p.surface, fg = p.pine, gui = "bold" },
},
command = {
a = { bg = p.surface, fg = p.love, gui = "bold" },
},
inactive = {
a = { bg = p.base, fg = p.subtle, gui = "bold" },
b = { bg = p.base, fg = p.subtle },
c = { bg = p.base, fg = p.subtle, gui = "italic" },
},
variants = {},
}
end
function generator.normal(p)
local config = require("rose-pine.config")
local bg_base = p.base
if config.options.styles.transparency then
bg_base = "NONE"
end
return {
normal = {
a = { bg = p.rose, fg = p.base, gui = "bold" },
b = { bg = p.overlay, fg = p.rose },
c = { bg = bg_base, fg = p.text },
},
insert = {
a = { bg = p.foam, fg = p.base, gui = "bold" },
b = { bg = p.overlay, fg = p.foam },
},
visual = {
a = { bg = p.iris, fg = p.base, gui = "bold" },
b = { bg = p.overlay, fg = p.iris },
},
replace = {
a = { bg = p.pine, fg = p.base, gui = "bold" },
b = { bg = p.overlay, fg = p.pine },
},
command = {
a = { bg = p.love, fg = p.base, gui = "bold" },
b = { bg = p.overlay, fg = p.love },
},
inactive = {
a = { bg = bg_base, fg = p.muted, gui = "bold" },
b = { bg = bg_base, fg = p.muted },
c = { bg = bg_base, fg = p.muted },
},
variants = {},
}
end
function generator.neutral(p)
return {
normal = {
a = { bg = p.rose, fg = p.base, gui = "bold" },
b = { bg = p.highlight_med, fg = p.rose },
c = { bg = p.highlight_high, fg = p.text },
},
insert = {
a = { bg = p.foam, fg = p.base, gui = "bold" },
b = { bg = p.highlight_med, fg = p.foam },
},
visual = {
a = { bg = p.iris, fg = p.base, gui = "bold" },
b = { bg = p.highlight_med, fg = p.iris },
},
replace = {
a = { bg = p.pine, fg = p.base, gui = "bold" },
b = { bg = p.highlight_med, fg = p.pine },
},
command = {
a = { bg = p.love, fg = p.base, gui = "bold" },
b = { bg = p.highlight_med, fg = p.love },
},
inactive = {
a = { bg = p.muted, fg = p.overlay, gui = "bold" },
b = { bg = p.muted, fg = p.overlay },
c = { bg = p.muted, fg = p.base },
},
variants = {}
}
end
function generator.inverse(p)
if p.base == palette.variants.moon.base then
return generator.normal(palette.variants.dawn)
elseif p.base == palette.variants.main.base then
return generator.normal(palette.variants.dawn)
elseif p.base == palette.variants.dawn.base then
return generator.normal(palette.variants.moon)
end
end
-- function generator.
local default = {}
for t, fn in pairs(generator) do
default[t] = fn(palette)
for k, v in pairs(palette.variants) do
default[t].variants[k] = fn(v)
end
end
return default