{ config, lib, ... }: let inherit (config.myvim.mkKey) mkKeymap wKeyObj; inherit (lib.nixvim) mkRaw; in { plugins = { bufferline = { enable = true; settings.options = rec { diagnostics = "nvim_lsp"; buffer_close_icon = "󰅙"; close_icon = buffer_close_icon; always_show_bufferline = true; hover = { enabled = true; delay = 200; reveal = [ "close" ]; }; }; }; harpoon.enable = true; }; wKeyList = [ (wKeyObj [ "b" "" "buffers" ]) (wKeyObj [ "" "" "tabs" ]) ]; keymaps = [ (mkKeymap "n" "b." ( # lua mkRaw '' function() harpoon = require("harpoon") harpoon:list():add() end '' ) "Add File to Harpoon") (mkKeymap "n" "bb" ( # lua mkRaw '' function() harpoon = require("harpoon") harpoon.ui:toggle_quick_menu(harpoon:list()) end '' ) "Harpoon ui") (mkKeymap "n" "bp" ":BufferLinePick" "Buffer Line Pick") (mkKeymap "n" "qc" ":bp | bd #" "Buffer close") (mkKeymap "n" "bP" "BufferLineTogglePin" "Buffer Pin") (mkKeymap "n" "bd" "BufferLineSortByDirectory" "Buffer Sort by dir") (mkKeymap "n" "be" "BufferLineSortByExtension" "Buffer Sort by ext") (mkKeymap "n" "bt" "BufferLineSortByTabs" "Buffer Sort by Tabs") (mkKeymap "n" "bL" "BufferLineCloseRight" "Buffer close all to right") (mkKeymap "n" "bH" "BufferLineCloseLeft" "Buffer close all to left") (mkKeymap "n" "bc" "BufferLineCloseOther" "Buffer close all except the current buffer" ) (mkKeymap "n" "" "BufferLineMovePrev" "Move buffer to left") (mkKeymap "n" "" "BufferLineMoveNext" "Move buffer to right") (mkKeymap "n" "" ":BufferLineCyclePrev" "Buffer Previous") (mkKeymap "n" "" ":BufferLineCycleNext" "Buffer Next") (mkKeymap "n" "j" "tabn" "Next Tab") (mkKeymap "n" "k" "tabp" "Previous Tab") (mkKeymap "n" "l" "tabn" "Next Tab") (mkKeymap "n" "h" "tabp" "Previous Tab") (mkKeymap "n" "qt" "tabclose" "Close Tab") (mkKeymap "n" "q" "tabclose" "Close Tab") (mkKeymap "n" "n" "tabnew" "New Tab") ]; }