{ pkgs, helpers, icons, ... }: { plugins = { bufferline = { enable = true; separatorStyle = "thin"; # “slant”, “padded_slant”, “slope”, “padded_slope”, “thick”, “thin” alwaysShowBufferline = false; diagnostics = "nvim_lsp"; diagnosticsIndicator = '' function(_, _, diag) local icons = ${helpers.toLuaObject icons.diagnostics} local ret = (diag.error and icons.Error .. diag.error .. " " or "") .. (diag.warning and icons.Warn .. diag.warning or "") return vim.trim(ret) end ''; offsets = [ { filetype = "neo-tree"; text = "Neo-tree"; highlight = "Directory"; text_align = "left"; } ]; closeCommand = "Bdelete! %d"; }; }; extraPlugins = with pkgs.vimPlugins; [bufdelete-nvim]; keymaps = [ { mode = "n"; key = ""; action = "BufferLineCycleNext"; options = { desc = "Cycle to next buffer"; }; } { mode = "n"; key = ""; action = "BufferLineCyclePrev"; options = { desc = "Cycle to previous buffer"; }; } { mode = "n"; key = ""; action = "BufferLineCycleNext"; options = { desc = "Cycle to next buffer"; }; } { mode = "n"; key = ""; action = "BufferLineCyclePrev"; options = { desc = "Cycle to previous buffer"; }; } { mode = "n"; key = "bd"; action = "Bdelete"; options = { desc = "Delete buffer"; }; } { mode = "n"; key = "bb"; action = "e #"; options = { desc = "Switch to Other Buffer"; }; } # { # mode = "n"; # key = "`"; # action = "e #"; # options = { # desc = "Switch to Other Buffer"; # }; # } { mode = "n"; key = "br"; action = "BufferLineCloseRight"; options = { desc = "Delete buffers to the right"; }; } { mode = "n"; key = "bl"; action = "BufferLineCloseLeft"; options = { desc = "Delete buffers to the left"; }; } { mode = "n"; key = "bo"; action = "BufferLineCloseOthers"; options = { desc = "Delete other buffers"; }; } { mode = "n"; key = "bp"; action = "BufferLineTogglePin"; options = { desc = "Toggle pin"; }; } { mode = "n"; key = "bP"; action = "BufferLineGroupClose ungrouped"; options = { desc = "Delete non-pinned buffers"; }; } ]; }