aboutsummaryrefslogtreecommitdiff
path: root/lua/gruvbox.lua
diff options
context:
space:
mode:
authorgoogle-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>2025-06-25 18:00:30 +0000
committergoogle-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>2025-06-25 18:00:30 +0000
commita38d3d9a294f08d21ab8733234e9f398821a95d9 (patch)
tree3a717d662d52612633a2eeb86bcc0203ada0da4b /lua/gruvbox.lua
parent00e38a379bab3389e187b3953566d67d494dfddd (diff)
downloadgruvbox-a38d3d9a294f08d21ab8733234e9f398821a95d9.tar.gz
gruvbox-a38d3d9a294f08d21ab8733234e9f398821a95d9.tar.xz
Fix: Make multiple calls to setup() independent
Previously, multiple calls to `gruvbox.setup()` would merge configurations, leading to unexpected behavior when trying to reset or change specific settings like `overrides` or `contrast`. This commit addresses the issue by ensuring that each call to `setup()` starts with a fresh copy of the default configuration before applying the user-provided settings. This change makes calls to `setup()` idempotent and independent of previous calls, as suggested in issue #402. A new test case has been added to verify this behavior.
Diffstat (limited to 'lua/gruvbox.lua')
-rw-r--r--lua/gruvbox.lua5
1 files changed, 4 insertions, 1 deletions
diff --git a/lua/gruvbox.lua b/lua/gruvbox.lua
index cd81874..6a5ef41 100644
--- a/lua/gruvbox.lua
+++ b/lua/gruvbox.lua
@@ -44,7 +44,7 @@ local Gruvbox = {}
---@field transparent_mode boolean?
---@field undercurl boolean?
---@field underline boolean?
-Gruvbox.config = {
+local default_config = {
terminal_colors = true,
undercurl = true,
underline = true,
@@ -68,6 +68,8 @@ Gruvbox.config = {
transparent_mode = false,
}
+Gruvbox.config = vim.deepcopy(default_config)
+
-- main gruvbox color palette
---@class GruvboxPalette
Gruvbox.palette = {
@@ -1311,6 +1313,7 @@ end
---@param config GruvboxConfig?
Gruvbox.setup = function(config)
+ Gruvbox.config = vim.deepcopy(default_config)
Gruvbox.config = vim.tbl_deep_extend("force", Gruvbox.config, config or {})
end