Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
1 task done
cohml opened this issue Nov 19, 2024 · 0 comments
Open
1 task done

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

cohml opened this issue Nov 19, 2024 · 0 comments
Labels
bug Something isn't working

Comments

@cohml
Copy link

cohml commented Nov 19, 2024

Is there an existing issue for this?

  • 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 cohml added the bug Something isn't working label Nov 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant