bufferline.nvim icon indicating copy to clipboard operation
bufferline.nvim copied to clipboard

[Bug]: BufferLineCycleNext/Prev doesn't descend into closed groups

Open cohml opened this issue 1 year ago • 0 comments

Is there an existing issue for this?

  • [X] I have searched the existing issues

What happened?

BufferLineCycleNext/Prev only cycles between ungrouped buffers and open groups. Groups whose buffers are closed are not opened.

What did you expect to happen?

BufferLineCycleNext/Prev should cycle through adjacent buffers regardless of whether their group is open or closed. If cycling into a group that's closed, the group should open, and close automatically upon leaving the group if auto_close is set to true.

Config

I load bufferline with lazy and require the following module via the config parameter:

local keymap = vim.keymap.set
keymap("n", "<leader>bp", "<cmd>BufferLineTogglePin<CR>", { noremap = true, silent = true, desc = "[P]in buffer" })
keymap("n", "<leader>bh", "<cmd>BufferLineMovePrev<CR>", { noremap = true, silent = true, desc = "Move buffer left" })
keymap("n", "<leader>bl", "<cmd>BufferLineMoveNext<CR>", { noremap = true, silent = true, desc = "Move buffer right" })
keymap("n", "<S-h>", "<cmd>BufferLineCyclePrev<CR>", { noremap = true, silent = true, desc = "Prev buffer" }) -- NOTE: doesn't seem to enter groups
keymap("n", "<S-l>", "<cmd>BufferLineCycleNext<CR>", { noremap = true, silent = true, desc = "Next buffer" }) -- NOTE: doesn't seem to enter groups

return function()
    local groups = require("bufferline.groups").builtin
    require("bufferline").setup(
        {
            options = {
                diagnostics = "nvim_lsp",
                diagnostics_indicator = function(count, level)
                    local icon = level:match("error") and " " or " "
                    return " " .. icon .. count
                end,
                groups = {
                    options = {
                        toggle_hidden_on_enter = true -- when you re-enter a hidden group this options re-opens that group so the buffer is visible
                    },
                    items = {
                        -- show pinned buffers first, then all ungrouped buffers, then docs then tests
                        groups.pinned:with({ icon = "󰐃 " }),
                        groups.ungrouped,
                        {
                            name = "Docs ",
                            highlight = { underline = true, sp = "#FC6F03" },
                            auto_close = true,
                            matcher = function(buf)
                                local filename = vim.api.nvim_buf_get_name(buf.id)
                                return filename:match("%.md") or filename:match("%.txt")
                            end,
                        },
                        {
                            name = "Tests ",
                            highlight = { underline = true, sp = "#036FFC" },
                            auto_close = true,
                            -- icon = " ",
                            matcher = function(buf)
                                local filename = vim.api.nvim_buf_get_name(buf.id)
                                return filename:match("%test_")
                            end,
                        },
                    },
                },
                color_icons = true,
                highlights = {
                    tab_selected = {
                        bg = {
                            attribute = "fg",
                            highlight = "Pmenu",
                        },
                    },
                },
                indicator = { style = "underline" }, -- doesn't seem to be working
                separator_style = { " ", " " },
            },
        }
    )
end

Additional Information

...

commit

5cc447c

cohml avatar Nov 19 '24 22:11 cohml