use background as lookup instead of base_name

This commit is contained in:
Michael Chris Lopez
2021-10-11 14:38:05 +08:00
parent 1fdce6cfd4
commit 8266247200
16 changed files with 39 additions and 59 deletions

View File

@@ -3,7 +3,5 @@ vim.g.colors_name = "neobones"
package.loaded["neobones"] = nil package.loaded["neobones"] = nil
require "lush"(require "neobones") require "lush"(require "neobones")
local util = require "zenbones.util" local p = require("neobones.palette")[vim.opt.background:get()]
local base_name = util.bg_to_base_name()
local p = require("neobones.palette")[base_name]
require("zenbones.term").apply_colors(p) require("zenbones.term").apply_colors(p)

View File

@@ -6,7 +6,5 @@ package.loaded["rosebones"] = nil
-- include our theme file and pass it to lush to apply -- include our theme file and pass it to lush to apply
require "lush"(require "rosebones") require "lush"(require "rosebones")
local util = require "zenbones.util" local p = require("rosebones.palette")[vim.opt.background:get()]
local base_name = util.bg_to_base_name()
local p = require("rosebones.palette")[base_name]
require("zenbones.term").apply_colors(p) require("zenbones.term").apply_colors(p)

View File

@@ -139,13 +139,12 @@ local lush = require "lush"
local hsluv = lush.hsluv -- Human-friendly hsl local hsluv = lush.hsluv -- Human-friendly hsl
local util = require "zenbones.util" local util = require "zenbones.util"
-- Let's base bg=dark, bg=light on zenflesh, zenbones specs respectively local bg = vim.opt.background:get()
local base_name = util.bg_to_base_name()
-- Define a palette. Use `palette_extend` to fill unspecified colors -- Define a palette. Use `palette_extend` to fill unspecified colors
-- Based on https://github.com/gruvbox-community/gruvbox#palette -- Based on https://github.com/gruvbox-community/gruvbox#palette
local palette local palette
if base_name == "zenbones" then if bg == "light" then
palette = util.palette_extend({ palette = util.palette_extend({
bg = hsluv "#fbf1c7", bg = hsluv "#fbf1c7",
fg = hsluv "#3c3836", fg = hsluv "#3c3836",
@@ -170,8 +169,8 @@ else
end end
-- Generate the lush specs using the generator util -- Generate the lush specs using the generator util
local generator = require(base_name .. ".specs") local generator = require "zenbones.specs"
local base_specs = generator.generate(palette, generator.get_global_config(base_name)) local base_specs = generator.generate(palette, bg, generator.get_global_config("gruvbones", bg))
-- Optionally extend specs using Lush -- Optionally extend specs using Lush
local specs = lush.extends({ base_specs }).with(function() local specs = lush.extends({ base_specs }).with(function()

View File

@@ -2,12 +2,13 @@ local lush = require "lush"
local util = require "zenbones.util" local util = require "zenbones.util"
local hsluv = lush.hsluv local hsluv = lush.hsluv
local base_name = util.bg_to_base_name() local bg = vim.opt.background:get()
local p = require("neobones.palette")[base_name] local p = require("neobones.palette")[bg]
local generator = require "zenbones.specs"
local specs = generator.generate(p, base_name, generator.get_global_config(base_name, "neobones"))
if base_name == "zenbones" then local generator = require "zenbones.specs"
local specs = generator.generate(p, bg, generator.get_global_config("neobones", bg))
if bg == "light" then
return lush.extends({ specs }).with(function() return lush.extends({ specs }).with(function()
return { return {
helpHyperTextJump { fg = hsluv "#195174" }, -- --link-color helpHyperTextJump { fg = hsluv "#195174" }, -- --link-color

View File

@@ -4,17 +4,17 @@ local hsluv = lush.hsluv
local M = {} local M = {}
M.zenbones = util.palette_extend({ M.light = util.palette_extend({
-- bg = hsluv "#d3e4db" -- --accent-bg-color -- bg = hsluv "#d3e4db" -- --accent-bg-color
bg = hsluv "#e7eee8", -- --bg-color bg = hsluv "#e7eee8", -- --bg-color
fg = hsluv "#202e18", -- --accent-color fg = hsluv "#202e18", -- --accent-color
}, "zenbones") }, "light")
M.zenbones.leaf = M.zenbones.leaf.sa(24).li(8) -- need to make green more prominent M.light.leaf = M.light.leaf.sa(24).li(8) -- need to make green more prominent
M.zenflesh = util.palette_extend({ M.dark = util.palette_extend {
bg = hsluv "#0f191f", -- --bg-color bg = hsluv "#0f191f", -- --bg-color
fg = hsluv "#c7d6d0", -- --fg-color fg = hsluv "#c7d6d0", -- --fg-color
leaf = hsluv "#8fff6d", -- --accent-color leaf = hsluv "#8fff6d", -- --accent-color
}, "zenflesh") }
return M return M

View File

@@ -1,11 +1,9 @@
local lush = require "lush" local lush = require "lush"
local util = require "zenbones.util" local bg = vim.opt.background:get()
local p = require("rosebones.palette")[bg]
local base_name = util.bg_to_base_name()
local p = require("rosebones.palette")[base_name]
local generator = require "zenbones.specs" local generator = require "zenbones.specs"
local specs = generator.generate(p, base_name, generator.get_global_config(base_name, "rosebones")) local specs = generator.generate(p, bg, generator.get_global_config("rosebones", bg))
-- extend specs using Lush -- extend specs using Lush
return lush.extends({ specs }).with(function() return lush.extends({ specs }).with(function()

View File

@@ -4,7 +4,7 @@ local hsluv = lush.hsluv
local M = {} local M = {}
M.zenbones = util.palette_extend({ M.light = util.palette_extend({
bg = hsluv(57.9, 49.8, 96.5), -- base bg = hsluv(57.9, 49.8, 96.5), -- base
fg = hsluv(14.5, 32, 36), -- rose, base: 14.5, 51.1, 63.3 fg = hsluv(14.5, 32, 36), -- rose, base: 14.5, 51.1, 63.3
rose = hsluv(355.6, 38.5, 51.9), -- love rose = hsluv(355.6, 38.5, 51.9), -- love
@@ -14,9 +14,9 @@ M.zenbones = util.palette_extend({
blossom = hsluv(283.8, 30.2, 54.8), -- iris blossom = hsluv(283.8, 30.2, 54.8), -- iris
sky = hsluv(208.6, 65.3, 57.7), -- foam sky = hsluv(208.6, 65.3, 57.7), -- foam
text = hsluv(270.1, 22.9, 36.8), -- text, base: 270.1, 22.9, 36.8 text = hsluv(270.1, 22.9, 36.8), -- text, base: 270.1, 22.9, 36.8
}, "zenbones") }, "light")
M.zenflesh = util.palette_extend({ M.dark = util.palette_extend {
bg = hsluv(271.2, 20.2, 8.5), -- base bg = hsluv(271.2, 20.2, 8.5), -- base
bg_warm = hsluv(268.9, 24.5, 13.9), -- base moon bg_warm = hsluv(268.9, 24.5, 13.9), -- base moon
fg = hsluv(14.8, 21, 82), -- rose, base: 2, 55, 83 fg = hsluv(14.8, 21, 82), -- rose, base: 2, 55, 83
@@ -27,6 +27,6 @@ M.zenflesh = util.palette_extend({
blossom = hsluv(283.1, 67.3, 73), -- iris blossom = hsluv(283.1, 67.3, 73), -- iris
sky = hsluv(206.7, 42.9, 80), -- foam sky = hsluv(206.7, 42.9, 80), -- foam
text = hsluv(269.4, 56, 89.2), -- text, base: 269.4, 63.6, 89.2 text = hsluv(269.4, 56, 89.2), -- text, base: 269.4, 63.6, 89.2
}, "zenflesh") }
return M return M

View File

@@ -77,12 +77,12 @@ function M.run()
-- neobones light -- neobones light
package.loaded["neobones"] = nil package.loaded["neobones"] = nil
vim.opt.background = "light" vim.opt.background = "light"
build("neobones_light", require "neobones", require("neobones.palette").zenbones, { exclude = { "vim" } }) build("neobones_light", require "neobones", require("neobones.palette").light, { exclude = { "vim" } })
-- neobones dark -- neobones dark
package.loaded["neobones"] = nil package.loaded["neobones"] = nil
vim.opt.background = "dark" vim.opt.background = "dark"
build("neobones_dark", require "neobones", require("neobones.palette").zenflesh, { exclude = { "vim" } }) build("neobones_dark", require "neobones", require("neobones.palette").dark, { exclude = { "vim" } })
end end
return M return M

View File

@@ -1,4 +1,4 @@
local generator = require "zenbones.specs" local generator = require "zenbones.specs"
local p = require "zenbones.palette" local p = require "zenbones.palette"
return generator.generate(p, "zenbones", generator.get_global_config "zenbones") return generator.generate(p, "light", generator.get_global_config "zenbones")

View File

@@ -1,3 +1,3 @@
local util = require "zenbones.util" local util = require "zenbones.util"
return util.palette_extend({}, "zenbones") return util.palette_extend({}, "light")

View File

@@ -1,34 +1,26 @@
local M = {} local M = {}
function M.get_global_config(base_name, prefix) function M.get_global_config(prefix, base_bg)
prefix = type(prefix) == "string" and prefix or base_name if base_bg == "light" then
if base_name == "zenbones" then
return { return {
lightness = vim.g[prefix .. "_lightness"], lightness = vim.g[prefix .. "_lightness"],
comment_gui = vim.g[prefix .. "_italic_comments"] ~= false and "italic" or "NONE", comment_gui = vim.g[prefix .. "_italic_comments"] ~= false and "italic" or "NONE",
dim_noncurrent_window = vim.g[prefix .. "_dim_noncurrent_window"], dim_noncurrent_window = vim.g[prefix .. "_dim_noncurrent_window"],
solid_vert_split = vim.g[prefix .. "_solid_vert_split"], solid_vert_split = vim.g[prefix .. "_solid_vert_split"],
} }
elseif base_name == "zenflesh" then else
return { return {
darkness = vim.g[prefix .. "_darkness"], darkness = vim.g[prefix .. "_darkness"],
comment_gui = vim.g[prefix .. "_italic_comments"] ~= false and "italic" or "NONE", comment_gui = vim.g[prefix .. "_italic_comments"] ~= false and "italic" or "NONE",
lighten_noncurrent_window = vim.g[prefix .. "_lighten_noncurrent_window"], lighten_noncurrent_window = vim.g[prefix .. "_lighten_noncurrent_window"],
solid_vert_split = vim.g[prefix .. "_solid_vert_split"], solid_vert_split = vim.g[prefix .. "_solid_vert_split"],
} }
else
error "Unknown base_name"
end end
end end
function M.generate(p, base_name, opt) function M.generate(p, base_bg, opt)
if base_name == "zenbones" then base_bg = base_bg ~= nil and base_bg or "dark"
return require "zenbones.specs.zenbones"(p, opt) return require("zenbones.specs." .. base_bg)(p, opt)
elseif base_name == "zenflesh" then
return require "zenbones.specs.zenflesh"(p, opt)
else
error "Unknown base_name"
end
end end
return M return M

View File

@@ -7,14 +7,10 @@ function M.interp(s, tab)
end)) end))
end end
function M.bg_to_base_name() function M.palette_extend(p, base_bg)
return vim.opt.background:get() == "light" and "zenbones" or "zenflesh"
end
function M.palette_extend(p, base_name)
local lush = require "lush" local lush = require "lush"
local hsluv = lush.hsluv local hsluv = lush.hsluv
if base_name == "zenbones" then if base_bg == "light" then
p = vim.tbl_extend("keep", p, { p = vim.tbl_extend("keep", p, {
bg = hsluv(39, 12, 94), -- sand bg = hsluv(39, 12, 94), -- sand
fg = hsluv(230, 30, 22), -- stone fg = hsluv(230, 30, 22), -- stone
@@ -37,7 +33,7 @@ function M.palette_extend(p, base_name)
sky1 = p.sky.sa(20).da(16), sky1 = p.sky.sa(20).da(16),
fg1 = p.fg.li(22), fg1 = p.fg.li(22),
}) })
elseif base_name == "zenflesh" then else
-- default -- default
p = vim.tbl_extend("keep", p, { p = vim.tbl_extend("keep", p, {
bg = hsluv(39, 9, 9), -- sand bg = hsluv(39, 9, 9), -- sand
@@ -62,8 +58,6 @@ function M.palette_extend(p, base_name)
sky1 = p.sky.sa(20).li(16), sky1 = p.sky.sa(20).li(16),
fg1 = p.fg.da(22), fg1 = p.fg.da(22),
}) })
else
error "Unknown base_name"
end end
end end

View File

@@ -1,4 +1,4 @@
local generator = require "zenbones.specs" local generator = require "zenbones.specs"
local p = require "zenflesh.palette" local p = require "zenflesh.palette"
return generator.generate(p, "zenflesh", generator.get_global_config "zenflesh") return generator.generate(p, "dark", generator.get_global_config "zenflesh")

View File

@@ -1,3 +1,3 @@
local util = require "zenbones.util" local util = require "zenbones.util"
return util.palette_extend({}, "zenflesh") return util.palette_extend {}