···7878 require("yankbank.persistence").add_entry(text, reg_type, pin)
7979end
80808181---- autocommand to listen for yank events
8282-function M.setup_yank_autocmd()
8383- vim.api.nvim_create_autocmd("TextYankPost", {
8484- callback = function()
8585- -- get register information
8686- local rn = vim.v.event.regname
8787-8888- -- check changes were made to default register
8989- if rn == "" or rn == "+" then
9090- local reg_type = vim.fn.getregtype(rn)
9191- local yank_text = vim.fn.getreg(rn)
9292-9393- if not yank_text or type(yank_text) ~= "string" then
9494- return
9595- end
9696-9797- if #yank_text <= 1 then
9898- return
9999- end
100100-101101- -- lazy load initialization when first yank happens
102102- require("yankbank").ensure_initialized()
103103- M.add_yank(yank_text, reg_type)
104104- end
105105- end,
106106- })
107107-108108- -- poll registers when vim is focused (check for new clipboard activity)
8181+--- poll registers when vim is focused (check for new clipboard activity)
8282+function M.setup_focus_autocmd()
10983 local opts = state.get_opts()
11084 if opts.focus_gain_poll == true then
11185 vim.api.nvim_create_autocmd("FocusGained", {
+3-8
lua/yankbank/init.lua
···1717end
18181919--- wrapper function for main plugin functionality
2020-local function show_yank_bank()
2020+function M.show()
2121 M.ensure_initialized()
22222323 local state = require("yankbank.state")
···6969 local state = require("yankbank.state")
7070 state.set_opts(merged_opts)
71717272- -- create user command
7373- vim.api.nvim_create_user_command("YankBank", function()
7474- show_yank_bank()
7575- end, { desc = "Show Recent Yanks" })
7676-7777- -- create clipboard autocmds
7878- require("yankbank.clipboard").setup_yank_autocmd()
7272+ -- focus-gain polling autocmd (TextYankPost is registered in plugin/yankbank.lua)
7373+ require("yankbank.clipboard").setup_focus_autocmd()
79748075 -- Bind 1-n if `bind_indices` is set to a string
8176 if merged_opts.bind_indices then
+27
plugin/yankbank.lua
···11+if vim.g.loaded_yankbank then
22+ return
33+end
44+vim.g.loaded_yankbank = 1
55+66+vim.api.nvim_create_user_command("YankBank", function()
77+ require("yankbank").show()
88+end, { desc = "Show Recent Yanks" })
99+1010+vim.api.nvim_create_autocmd("TextYankPost", {
1111+ group = vim.api.nvim_create_augroup("YankBank", { clear = true }),
1212+ callback = function()
1313+ local rn = vim.v.event.regname
1414+ if rn ~= "" and rn ~= "+" then
1515+ return
1616+ end
1717+1818+ local yank_text = vim.fn.getreg(rn)
1919+ if type(yank_text) ~= "string" or #yank_text <= 1 then
2020+ return
2121+ end
2222+2323+ local reg_type = vim.fn.getregtype(rn)
2424+ require("yankbank").ensure_initialized()
2525+ require("yankbank.clipboard").add_yank(yank_text, reg_type)
2626+ end,
2727+})