diff --git a/lua/bufferline.lua b/lua/bufferline.lua index 95b59d3d..67edd408 100644 --- a/lua/bufferline.lua +++ b/lua/bufferline.lua @@ -135,7 +135,8 @@ function M.group_action(name, action) if action == "close" then groups.command(name, function(b) api.nvim_buf_delete(b.id, { force = true }) end) ui.refresh() - groups.reset_manual_groupings() + + groups.reset_manual_groupings(name) elseif action == "toggle" then groups.toggle_hidden(nil, name) ui.refresh() diff --git a/lua/bufferline/groups.lua b/lua/bufferline/groups.lua index 03caae03..479298cb 100644 --- a/lua/bufferline/groups.lua +++ b/lua/bufferline/groups.lua @@ -462,9 +462,17 @@ local function sort_by_groups(components) end --- Resets manual mappings. -function M.reset_manual_groupings() - vim.g[PINNED_KEY] = {} - state.manual_groupings = {} +---@param name string Group name +function M.reset_manual_groupings(name) + if name == PINNED_NAME then + vim.g[PINNED_KEY] = {} + end + + for buf, group_id in pairs(state.manual_groupings) do + if group_id == name then + state.manual_groupings[buf] = nil + end + end end function M.get_all() return state.user_groups end