87 lines
2.0 KiB
Lua
87 lines
2.0 KiB
Lua
local template = [[local common_fg = "$common_fg"
|
|
local inactive_bg = "$inactive_bg"
|
|
local inactive_fg = "$inactive_fg"
|
|
|
|
return {
|
|
normal = {
|
|
a = { bg = "$normal_a_bg", fg = common_fg, gui = "bold" },
|
|
b = { bg = "$normal_b_bg", fg = common_fg },
|
|
c = { bg = "$normal_c_bg", fg = "$normal_c_fg" },
|
|
},
|
|
|
|
insert = {
|
|
a = { bg = "$insert_a_bg", fg = common_fg, gui = "bold" },
|
|
},
|
|
|
|
command = {
|
|
a = { bg = "$command_a_bg", fg = common_fg, gui = "bold" },
|
|
},
|
|
|
|
visual = {
|
|
a = { bg = "$visual_a_bg", fg = common_fg, gui = "bold" },
|
|
},
|
|
|
|
replace = {
|
|
a = { bg = "$replace_a_bg", fg = common_fg, gui = "bold" },
|
|
},
|
|
|
|
inactive = {
|
|
a = { bg = inactive_bg, fg = inactive_fg, gui = "bold" },
|
|
b = { bg = inactive_bg, fg = inactive_fg },
|
|
c = { bg = inactive_bg, fg = inactive_fg },
|
|
},
|
|
}]]
|
|
|
|
local helpers = require "shipwright.transform.helpers"
|
|
|
|
local check_keys = {
|
|
"common_fg",
|
|
"inactive_bg",
|
|
"inactive_fg",
|
|
"normal_a_bg",
|
|
"normal_b_bg",
|
|
"normal_c_bg",
|
|
"normal_c_fg",
|
|
"insert_a_bg",
|
|
"command_a_bg",
|
|
"visual_a_bg",
|
|
"replace_a_bg",
|
|
}
|
|
|
|
local function to_lualine(colors)
|
|
for _, key in ipairs(check_keys) do
|
|
assert(colors[key], "lualine colors table missing key: " .. key)
|
|
end
|
|
|
|
local text = helpers.apply_template(template, colors)
|
|
return { text }
|
|
end
|
|
|
|
local function specs_to_colors(specs)
|
|
return {
|
|
common_fg = specs.Folded.fg,
|
|
inactive_bg = specs.StatusLineNC.bg,
|
|
inactive_fg = specs.StatusLineNC.fg,
|
|
normal_a_bg = specs.PmenuSbar.bg,
|
|
normal_b_bg = specs.PmenuSel.bg,
|
|
normal_c_bg = specs.StatusLine.bg,
|
|
normal_c_fg = specs.StatusLine.fg,
|
|
insert_a_bg = specs.DiffText.bg,
|
|
command_a_bg = specs.Search.bg,
|
|
visual_a_bg = specs.Visual.bg,
|
|
replace_a_bg = specs.DiffDelete.bg,
|
|
}
|
|
end
|
|
|
|
---@diagnostic disable: undefined-global
|
|
-- selene: allow(undefined_variable)
|
|
run(
|
|
specs,
|
|
specs_to_colors,
|
|
to_lualine,
|
|
{ prepend, "-- This file is auto-generated by shipwright.nvim" },
|
|
{ overwrite, string.format("lua/lualine/themes/%s.lua", name) }
|
|
)
|
|
-- selene: deny(undefined_variable)
|
|
---@diagnostic enable: undefined-global
|