update gruvbones example

This commit is contained in:
Michael Chris Lopez
2021-10-10 15:02:17 +08:00
parent 360da2b38e
commit 6d21f82d89

View File

@@ -99,70 +99,58 @@ Let's define our
```lua ```lua
vim.g.colors_name = "gruvbones" vim.g.colors_name = "gruvbones"
-- let's base bg=dark, bg=light on zenflesh, zenbones specs respectively
local base_name = vim.opt.background:get() == "dark" and "zenflesh" or "zenbones"
-- reset base palette and specs
package.loaded[base_name .. ".palette"] = nil
package.loaded[base_name] = nil
local lush = require "lush" local lush = require "lush"
local hsl = lush.hsl local hsluv = lush.hsluv -- human-friendly hsl
local util = require "zenbones.util"
-- modify base palette (before requiring specs) -- let's base bg=dark, bg=light on zenflesh, zenbones specs respectively
-- and we can also define our own local base_name = util.bg_to_base_name()
-- note: non-exhaustive copy of gruvbox palette. Ref: https://github.com/gruvbox-community/gruvbox#palette
local base = require(base_name .. ".palette") -- create a palette. Use palette_extend to fill unspecified colors
local gruv -- based on https://github.com/gruvbox-community/gruvbox#palette
local palette
if base_name == "zenbones" then if base_name == "zenbones" then
base.bg = hsl "#fbf1c7" palette = util.palette_extend({
base.fg = hsl "#3c3836" bg = hsluv "#fbf1c7",
gruv = { fg = hsluv "#3c3836",
gray = hsl "#7c6f64", rose = hsluv "#9d0006",
fg0 = hsl "#282828", leaf = hsluv "#79740e",
fg1 = hsl "#3c3836", wood = hsluv "#b57614",
fg2 = hsl "#504945", water = hsluv "#076678",
fg3 = hsl "#665c54", blossom = hsluv "#8f3f71",
fg4 = hsl "#7c6f64", sky = hsluv "#427b58",
} }, "zenbones")
else else
base.bg = hsl "#282828" palette = util.palette_extend({
base.fg = hsl "#ebdbb2" bg = hsluv "#282828",
gruv = { fg = hsluv "#ebdbb2",
gray = hsl "#a89984", rose = hsluv "#fb4934",
fg0 = hsl "#fbf1c7", leaf = hsluv "#b8bb26",
fg1 = hsl "#ebdbb2", wood = hsluv "#fabd2f",
fg2 = hsl "#d5c4a1", water = hsluv "#83a598",
fg3 = hsl "#d5c4a1", blossom = hsluv "#d3869b",
fg4 = hsl "#a89984", sky = hsluv "#83c07c",
} }, "zenflesh")
end end
base.rose = hsl "#cc241d" -- generate the lush specs using the generator util
base.leaf = hsl "#98971a" local generator = require(base_name .. ".specs")
base.wood = hsl "#d79921" local base_specs = generator.generate(palette, generator.get_global_config(base_name))
base.water = hsl "#458588"
base.blossom = hsl "#b16286"
base.sky = hsl "#689d6a"
-- extend specs using Lush -- optionally extend specs using Lush
local theme = require(base_name) local specs = lush.extends({ base_specs }).with(function()
local specs = lush.extends({ theme }).with(function()
return { return {
Constant { fg = gruv.fg4, gui = "italic" }, Statement { base_specs.Statement, fg = palette.rose },
Identifier { fg = gruv.fg2, gui = "italic" }, Special { fg = palette.water },
Special { fg = gruv.fg3, gui = "bold" }, Type { fg = palette.sky, gui = "italic" },
Delimiter { fg = gruv.gray },
Comment { fg = gruv.gray, gui = "italic" },
LineNr { fg = Comment.fg },
} }
end) end)
-- apply terminal colors
require(base_name .. ".term").setup()
-- include our theme file and pass it to lush to apply -- include our theme file and pass it to lush to apply
lush(specs) lush(specs)
-- optionally, set term colors
require("zenbones.term").apply_colors(palette)
``` ```
And there you have it. Just call `colorscheme gruvbones` to use your new And there you have it. Just call `colorscheme gruvbones` to use your new