bufferline.nvim
bufferline.nvim copied to clipboard
[Bug]: BufferLineCycleNext/Prev doesn't descend into closed groups
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