···4747 -- merge opts with default options table
4848 YB_OPTS = vim.tbl_deep_extend("keep", opts or {}, default_opts)
49495050+ -- set up menu keybinds from defafaults and YB_OPTS.keymaps
5151+ menu.setup()
5252+5053 -- enable persistence based on opts (needs to be called before autocmd setup)
5154 YB_YANKS, YB_REG_TYPES, YB_PINS = persistence.setup()
5255
+19-15
lua/yankbank/menu.lua
···1818 yank_register = "+",
1919}
20202121--- merge default and options keymap tables
2222-local k = vim.tbl_deep_extend("force", default_keymaps, YB_OPTS.keymaps or {})
2121+-- local YB_OPTS.keymaps = {}
23222424--- merge default and options register tables
2525-YB_OPTS.registers =
2626- vim.tbl_deep_extend("force", default_registers, YB_OPTS.registers or {})
2323+function M.setup()
2424+ -- merge default and options keymap tables
2525+ YB_OPTS.keymaps =
2626+ vim.tbl_deep_extend("force", default_keymaps, YB_OPTS.keymaps or {})
2727+ -- merge default and options register tables
2828+ YB_OPTS.registers =
2929+ vim.tbl_deep_extend("force", default_registers, YB_OPTS.registers or {})
27302828--- check table for number behavior option (prefix or jump, default to prefix)
2929-YB_OPTS.num_behavior = YB_OPTS.num_behavior or "prefix"
3131+ -- check table for number behavior option (prefix or jump, default to prefix)
3232+ YB_OPTS.num_behavior = YB_OPTS.num_behavior or "prefix"
3333+end
30343135--- Container class for YankBank buffer related variables
3236---@class YankBankBufData
···118122119123 -- popup buffer navigation binds
120124 if YB_OPTS.num_behavior == "prefix" then
121121- vim.keymap.set("n", k.navigation_next, function()
125125+ vim.keymap.set("n", YB_OPTS.keymaps.navigation_next, function()
122126 local count = vim.v.count1 > 0 and vim.v.count1 or 1
123127 helpers.next_numbered_item(count)
124128 return ""
125129 end, { noremap = true, silent = true, buffer = b.bufnr })
126126- vim.keymap.set("n", k.navigation_prev, function()
130130+ vim.keymap.set("n", YB_OPTS.keymaps.navigation_prev, function()
127131 local count = vim.v.count1 > 0 and vim.v.count1 or 1
128132 helpers.prev_numbered_item(count)
129133 return ""
···131135 else
132136 vim.keymap.set(
133137 "n",
134134- k.navigation_next,
138138+ YB_OPTS.keymaps.navigation_next,
135139 helpers.next_numbered_item,
136140 map_opts
137141 )
138142 vim.keymap.set(
139143 "n",
140140- k.navigation_prev,
144144+ YB_OPTS.keymaps.navigation_prev,
141145 helpers.prev_numbered_item,
142146 map_opts
143147 )
···162166 end
163167164168 -- bind paste behavior
165165- vim.keymap.set("n", k.paste, function()
169169+ vim.keymap.set("n", YB_OPTS.keymaps.paste, function()
166170 local cursor = vim.api.nvim_win_get_cursor(b.win_id)[1]
167171 -- use the mapping to find the original yank
168172 local yankIndex = b.line_yank_map[cursor]
···179183 end
180184 end, map_opts)
181185 -- paste backwards
182182- vim.keymap.set("n", k.paste_back, function()
186186+ vim.keymap.set("n", YB_OPTS.keymaps.paste_back, function()
183187 local cursor = vim.api.nvim_win_get_cursor(b.win_id)[1]
184188 -- use the mapping to find the original yank
185189 local yankIndex = b.line_yank_map[cursor]
···197201 end, map_opts)
198202199203 -- bind yank behavior
200200- vim.keymap.set("n", k.yank, function()
204204+ vim.keymap.set("n", YB_OPTS.keymaps.yank, function()
201205 local cursor = vim.api.nvim_win_get_cursor(b.win_id)[1]
202206 local yankIndex = b.line_yank_map[cursor]
203207 if yankIndex then
···208212209213 -- close popup keybinds
210214 -- REFACTOR: check if close keybind is string, handle differently
211211- for _, map in ipairs(k.close) do
215215+ for _, map in ipairs(YB_OPTS.keymaps.close) do
212216 vim.keymap.set("n", map, function()
213217 vim.api.nvim_win_close(b.win_id, true)
214218 end, map_opts)