From 0a1cc638ebde57908d26c5c44667754f0edcdaca Mon Sep 17 00:00:00 2001 From: jostaub <67969701+jostaub@users.noreply.github.com> Date: Fri, 2 Aug 2024 16:15:45 +0200 Subject: [PATCH] feat: palette overrides --- lua/rose-pine/config.lua | 3 +++ lua/rose-pine/palette.lua | 22 ++++++++++++++++++++++ readme.md | 10 ++++++++++ 3 files changed, 35 insertions(+) diff --git a/lua/rose-pine/config.lua b/lua/rose-pine/config.lua index eb05330..bbc9967 100644 --- a/lua/rose-pine/config.lua +++ b/lua/rose-pine/config.lua @@ -35,6 +35,9 @@ config.options = { transparency = false, }, + ---@type table> + palette = {}, + ---@type table groups = { border = "muted", diff --git a/lua/rose-pine/palette.lua b/lua/rose-pine/palette.lua index ffa5f81..a2de92b 100644 --- a/lua/rose-pine/palette.lua +++ b/lua/rose-pine/palette.lua @@ -62,6 +62,28 @@ local variants = { }, } +if options.palette ~= nil and next(options.palette) then + -- handle override of all variants if defined in config + if options.palette["all"] then + for variant_name in pairs(variants) do + variants[variant_name] = vim.tbl_extend("force", variants[variant_name], options.palette["all"]) + end + end + + -- handle variant specific overrides + for variant_name, override_palette in pairs(options.palette) do + -- ignore pseudo variant all as is was allready handeld + if variant_name == "all" then + goto continue + end + + if variants[variant_name] then + variants[variant_name] = vim.tbl_extend("force", variants[variant_name], override_palette or {}) + end + ::continue:: + end +end + if variants[options.variant] ~= nil then return variants[options.variant] end diff --git a/readme.md b/readme.md index 7c1ac9b..55b3b28 100644 --- a/readme.md +++ b/readme.md @@ -100,6 +100,16 @@ require("rose-pine").setup({ h6 = "foam", }, + pallet = { + -- override (or append) default color palette of specified variants + -- moon = { + -- base = '#18191a', + -- overlay = '#363738', + -- }, + -- + -- use "all" instead of variant name to override colors in all variants + }, + highlight_groups = { -- Comment = { fg = "foam" }, -- VertSplit = { fg = "muted", bg = "muted" },