Improve color setting in nvim

This commit is contained in:
ViViDboarder 2021-12-15 15:24:05 -08:00
parent 6b8a4d39db
commit eca001d4d7

View File

@ -2,12 +2,15 @@
function _G.update_colors() function _G.update_colors()
local function maybe_set(scope, name, val, force) local function maybe_set(scope, name, val, force)
force = force or false force = force or false
if vim[scope][name] ~= val then local changed = vim[scope][name] ~= val
vim[scope][name] = val if changed or force then
return true if scope == "g" and name == "colors_name" then
end -- Colorscheme is different. Use this instead of setting colors_name directly
if force then vim.cmd("colorscheme "..val)
vim[scope][name] = val else
vim[scope][name] = val
end
return changed
end end
return false return false
end end
@ -31,12 +34,12 @@ function _G.update_colors()
env_color = utils.env_default("VIM_COLOR_DARK", env_color) env_color = utils.env_default("VIM_COLOR_DARK", env_color)
env_color = utils.env_default("NVIM_COLOR_DARK", env_color) env_color = utils.env_default("NVIM_COLOR_DARK", env_color)
change = maybe_set("o", "background", "dark") change = maybe_set("o", "background", "dark")
change = maybe_set("g", "colors_name", env_color, true) or change change = maybe_set("g", "colors_name", env_color, false) or change
elseif mode == "light" then elseif mode == "light" then
env_color = utils.env_default("VIM_COLOR_LIGHT", env_color) env_color = utils.env_default("VIM_COLOR_LIGHT", env_color)
env_color = utils.env_default("NVIM_COLOR_LIGHT", env_color) env_color = utils.env_default("NVIM_COLOR_LIGHT", env_color)
change = maybe_set("o", "background", "light") change = maybe_set("o", "background", "light")
change = maybe_set("g", "colors_name", env_color, true) or change change = maybe_set("g", "colors_name", env_color, false) or change
end end
-- Update status line theme -- Update status line theme