143 lines
2.9 KiB
Nix
143 lines
2.9 KiB
Nix
{
|
|
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 = "<Tab>";
|
|
action = "<cmd>BufferLineCycleNext<cr>";
|
|
options = {
|
|
desc = "Cycle to next buffer";
|
|
};
|
|
}
|
|
|
|
{
|
|
mode = "n";
|
|
key = "<S-Tab>";
|
|
action = "<cmd>BufferLineCyclePrev<cr>";
|
|
options = {
|
|
desc = "Cycle to previous buffer";
|
|
};
|
|
}
|
|
|
|
{
|
|
mode = "n";
|
|
key = "<S-l>";
|
|
action = "<cmd>BufferLineCycleNext<cr>";
|
|
options = {
|
|
desc = "Cycle to next buffer";
|
|
};
|
|
}
|
|
|
|
{
|
|
mode = "n";
|
|
key = "<S-h>";
|
|
action = "<cmd>BufferLineCyclePrev<cr>";
|
|
options = {
|
|
desc = "Cycle to previous buffer";
|
|
};
|
|
}
|
|
|
|
{
|
|
mode = "n";
|
|
key = "<leader>bd";
|
|
action = "<cmd>Bdelete<cr>";
|
|
options = {
|
|
desc = "Delete buffer";
|
|
};
|
|
}
|
|
|
|
{
|
|
mode = "n";
|
|
key = "<leader>bb";
|
|
action = "<cmd>e #<cr>";
|
|
options = {
|
|
desc = "Switch to Other Buffer";
|
|
};
|
|
}
|
|
|
|
# {
|
|
# mode = "n";
|
|
# key = "<leader>`";
|
|
# action = "<cmd>e #<cr>";
|
|
# options = {
|
|
# desc = "Switch to Other Buffer";
|
|
# };
|
|
# }
|
|
|
|
{
|
|
mode = "n";
|
|
key = "<leader>br";
|
|
action = "<cmd>BufferLineCloseRight<cr>";
|
|
options = {
|
|
desc = "Delete buffers to the right";
|
|
};
|
|
}
|
|
|
|
{
|
|
mode = "n";
|
|
key = "<leader>bl";
|
|
action = "<cmd>BufferLineCloseLeft<cr>";
|
|
options = {
|
|
desc = "Delete buffers to the left";
|
|
};
|
|
}
|
|
|
|
{
|
|
mode = "n";
|
|
key = "<leader>bo";
|
|
action = "<cmd>BufferLineCloseOthers<cr>";
|
|
options = {
|
|
desc = "Delete other buffers";
|
|
};
|
|
}
|
|
|
|
{
|
|
mode = "n";
|
|
key = "<leader>bp";
|
|
action = "<cmd>BufferLineTogglePin<cr>";
|
|
options = {
|
|
desc = "Toggle pin";
|
|
};
|
|
}
|
|
|
|
{
|
|
mode = "n";
|
|
key = "<leader>bP";
|
|
action = "<Cmd>BufferLineGroupClose ungrouped<CR>";
|
|
options = {
|
|
desc = "Delete non-pinned buffers";
|
|
};
|
|
}
|
|
];
|
|
}
|