This commit is contained in:
punkfairie 2024-11-25 22:11:42 -08:00
parent e3ef9e4716
commit cd5582af85
Signed by: punkfairie
GPG key ID: A509E8F77FB9D696
2 changed files with 83 additions and 0 deletions

10
lib/icons/default.nix Normal file
View file

@ -0,0 +1,10 @@
_: {
icons = {
diagnostics = {
error = " ";
warn = " ";
hint = " ";
info = " ";
};
};
}

View file

@ -0,0 +1,73 @@
{
lib,
helpers,
...
}: let
inherit (helpers) mkRaw;
inherit (lib) flatten mapAttrsToList map;
inherit (lib.marleyvim) icons keys;
in {
plugins.bufferline = {
enable = true;
settings = {
options = {
close_command =
mkRaw
# lua
"function(n) Snacks.bufdelete(n) end";
right_mouse_command =
mkRaw
# lua
"function(n) Snacks.bufdelete(n) end";
diagnostics = "nvim_lsp";
diagnostics_indicator =
mkRaw
# lua
''
function(_, _, diag)
local ret = (diag.error and "${icons.diagnostics.error}" .. diag.error .. " " or "")
.. (diag.warning and "${icons.diagnostics.warn}" .. diag.warning or "")
return vim.trim(ret)
end
'';
};
};
};
keymaps =
[
(keys.mk ["n"] "<LEADER>bp" "<CMD>BufferLineTogglePin<CR>" "Toggle Pin")
(keys.mk ["n"] "<LEADER>bP" "<CMD>BufferLineGroupClose ungrouped<CR>"
"Delete Non-Pinned Buffers")
(keys.mk ["n"] "<LEADER>br" "<CMD>BufferLineCloseRight<CR>"
"Delete Buffers to the Right")
(keys.mk ["n"] "<LEADER>bl" "<CMD>BufferLineCloseLeft<CR>"
"Delete Buffers to the Left")
(keys.mk ["n"] "<S-H>" "<CMD>BufferLineCyclePrev<CR>" "Prev Buffer")
(keys.mk ["n"] "<S-L>" "<CMD>BufferLineCycleNext<CR>" "Next Buffer")
]
++ (flatten (mapAttrsToList (
a: ks:
map (k: keys.mk ["n"] k "<CMD>BufferLineCycle${a}<CR>" "${a} Buffer") ks
) {
Prev = ["<S-H>" "[b"];
Next = ["<S-L>" "]b"];
}))
++ (
mapAttrsToList (
a: k: let
befAft =
if (a == "Prev")
then "After"
else "Before";
in
keys.mk ["n"] "${k}B" "<CMD>BufferLineMove${a}<CR>"
"Move Buffer ${befAft} ${a}"
) {
Prev = "[";
After = "]";
}
);
}