From 06f72bbe2b7150506c8a85cfb0e83bc166a429ce Mon Sep 17 00:00:00 2001 From: Barrett Ruth Date: Wed, 18 Feb 2026 17:27:01 -0500 Subject: [PATCH] fix: only show user-configured platforms in picker Problem: tbl_deep_extend merges user platforms on top of defaults, so all four default platforms survive even when the user only configures a subset. The picker then shows platforms the user never intended to use. Solution: before the deep merge, prune any default platform not present in the user's platforms table. This preserves per-platform default filling (the user doesn't have to re-specify every field) while ensuring only explicitly configured platforms appear. --- lua/cp/config.lua | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/lua/cp/config.lua b/lua/cp/config.lua index dec8878..4ed762b 100644 --- a/lua/cp/config.lua +++ b/lua/cp/config.lua @@ -292,7 +292,15 @@ end ---@return cp.Config function M.setup(user_config) vim.validate({ user_config = { user_config, { 'table', 'nil' }, true } }) - local cfg = vim.tbl_deep_extend('force', vim.deepcopy(M.defaults), user_config or {}) + local defaults = vim.deepcopy(M.defaults) + if user_config and user_config.platforms then + for plat in pairs(defaults.platforms) do + if not user_config.platforms[plat] then + defaults.platforms[plat] = nil + end + end + end + local cfg = vim.tbl_deep_extend('force', defaults, user_config or {}) if not next(cfg.languages) then error('[cp.nvim] At least one language must be configured')