aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarian <marian1amazing@gmail.com>2022-09-30 21:46:22 +0400
committerGitHub <noreply@github.com>2022-09-30 14:46:22 -0300
commitb9cf48f2c55a9f1bd60efd48060ca256f65146f8 (patch)
treef9d70f1b5dd84daaba9a8ee9d002248d378ca16b
parentd2fdcdb1822264c256bf38a56efc1c3d4ecc337f (diff)
downloadgruvbox-b9cf48f2c55a9f1bd60efd48060ca256f65146f8.tar.gz
gruvbox-b9cf48f2c55a9f1bd60efd48060ca256f65146f8.tar.xz
Add palette overriding (#145)
-rw-r--r--README.md19
-rw-r--r--lua/gruvbox/groups.lua4
-rw-r--r--lua/gruvbox/init.lua1
-rw-r--r--tests/gruvbox/gruvbox_spec.lua19
4 files changed, 41 insertions, 2 deletions
diff --git a/README.md b/README.md
index c037622..9b708a7 100644
--- a/README.md
+++ b/README.md
@@ -66,7 +66,24 @@ require("gruvbox").setup({
vim.cmd("colorscheme gruvbox")
```
-## Overriding Highlight groups
+## Overriding
+
+### Pallette
+
+You can specify your own palette colors. For example:
+
+```lua
+require("gruvbox").setup({
+ palette_overrides = {
+ bright_green = "#990000",
+ }
+})
+vim.cmd("colorscheme gruvbox")
+```
+
+More colors in the [palette.lua](lua/gruvbox/palette.lua) file
+
+### Highlight groups
If you don't enjoy the current color for a specific highlight group, now you can just override it in the setup. For
example:
diff --git a/lua/gruvbox/groups.lua b/lua/gruvbox/groups.lua
index 24c910e..124e084 100644
--- a/lua/gruvbox/groups.lua
+++ b/lua/gruvbox/groups.lua
@@ -93,9 +93,11 @@ end
groups.setup = function()
local config = require("gruvbox").config
+
local palette = require("gruvbox.palette")
- local colors = get_base_colors(palette, config.contrast)
+ for k,v in pairs(config.palette_overrides) do palette[k] = v end
+ local colors = get_base_colors(palette, config.contrast)
set_terminal_colors(colors)
local groups = {
diff --git a/lua/gruvbox/init.lua b/lua/gruvbox/init.lua
index aee9ccd..43dad76 100644
--- a/lua/gruvbox/init.lua
+++ b/lua/gruvbox/init.lua
@@ -13,6 +13,7 @@ M.config = {
invert_intend_guides = false,
inverse = true, -- invert background for search, diffs, statuslines and errors
contrast = "", -- can be "hard", "soft" or empty string
+ palette_overrides = {},
overrides = {},
dim_inactive = false,
transparent_mode = false,
diff --git a/tests/gruvbox/gruvbox_spec.lua b/tests/gruvbox/gruvbox_spec.lua
index 9338ab6..ed96742 100644
--- a/tests/gruvbox/gruvbox_spec.lua
+++ b/tests/gruvbox/gruvbox_spec.lua
@@ -15,6 +15,7 @@ describe("setup", function()
invert_tabline = false,
invert_intend_guides = false,
contrast = "",
+ palette_overrides = {},
overrides = {},
dim_inactive = false,
transparent_mode = false,
@@ -37,6 +38,7 @@ describe("setup", function()
invert_tabline = false,
invert_intend_guides = false,
contrast = "",
+ palette_overrides = {},
overrides = {},
dim_inactive = false,
transparent_mode = false,
@@ -118,4 +120,21 @@ describe("highlight overrides", function()
}
assert.are.same(values, { background = "#990000" })
end)
+
+ it("should override palette", function()
+ local config = {
+ palette_overrides = {
+ bright_green = "#990000",
+ },
+ }
+
+ gruvbox.setup(config)
+ gruvbox.load()
+
+ local group_id = vim.api.nvim_get_hl_id_by_name("Function")
+ local values = {
+ background = vim.fn.synIDattr(group_id, "bg", "gui"),
+ }
+ assert.are.same(values, { background = "#990000" })
+ end)
end)