Files
zenbones-theme/lua/zenbones/shipwright/init.lua
Michael Chris Lopez aa31123d22 add lualine transform
2021-11-05 16:52:55 +08:00

75 lines
1.6 KiB
Lua

local M = {}
local function make_env(colorscheme)
local builder = require "shipwright.builder"
local env = builder.make_env()
local specs = colorscheme.specs
env.name = colorscheme.name
vim.opt.background = colorscheme.background
package.loaded[specs] = nil
env.specs = require(specs)
env.p = require(specs .. ".palette")[colorscheme.background]
env.term = require("zenbones.term").colors_map(env.p)
env.transform = require "zenbones.shipwright.transform"
return env
end
local function make_build_fn(file)
return loadfile(string.format("lua/zenbones/shipwright/runners/%s.lua", file))
end
local function make_runners(config)
if not config.background then
return {
setfenv(
make_build_fn(config.file),
make_env {
name = config.name .. "_light",
specs = config.name,
background = "light",
}
),
setfenv(
make_build_fn(config.file),
make_env {
name = config.name .. "_dark",
specs = config.name,
background = "dark",
}
),
}
end
return {
setfenv(
make_build_fn(config.file),
make_env {
name = config.name,
specs = config.name,
background = config.background,
}
),
}
end
M.run = function()
local runner_files = { "alacritty", "kitty", "wezterm", "lualine" }
local colorschemes = {
{ name = "zenbones" },
{ name = "neobones" },
{ name = "vimbones", background = "light" },
}
for _, colorscheme in ipairs(colorschemes) do
for _, file in ipairs(runner_files) do
colorscheme.file = file
for _, runner in ipairs(make_runners(colorscheme)) do
assert(pcall(runner))
end
end
end
end
return M