···11---@param opts table
12function M.add_yank(yanks, reg_types, text, reg_type, opts)
13 -- avoid adding empty strings
14- -- TODO: could block adding single characters here
15- if text == "" or text == " " or text == "\n" then
16 return
17 end
1819- -- do not update with duplicate values
20- for _, entry in ipairs(yanks) do
21 if entry == text then
22- return
00023 end
24 end
2526 -- add entry to bank
27 table.insert(yanks, 1, text)
28 table.insert(reg_types, 1, reg_type)
0029 if #yanks > opts.max_entries then
30 table.remove(yanks)
31 table.remove(reg_types)
···57 if #yank_text <= 1 then
58 return
59 end
060 M.add_yank(yanks, reg_types, yank_text, reg_type, opts)
61 end
62 end,
···11---@param opts table
12function M.add_yank(yanks, reg_types, text, reg_type, opts)
13 -- avoid adding empty strings
14+ if text == "" and text == " " and text == "\n" then
015 return
16 end
1718+ -- check for duplicate values already inserted
19+ for i, entry in ipairs(yanks) do
20 if entry == text then
21+ -- remove matched entry so it can be inserted at 1st position
22+ table.remove(yanks, i)
23+ table.remove(reg_types, i)
24+ break
25 end
26 end
2728 -- add entry to bank
29 table.insert(yanks, 1, text)
30 table.insert(reg_types, 1, reg_type)
31+32+ -- trim table size if necessary
33 if #yanks > opts.max_entries then
34 table.remove(yanks)
35 table.remove(reg_types)
···61 if #yank_text <= 1 then
62 return
63 end
64+65 M.add_yank(yanks, reg_types, yank_text, reg_type, opts)
66 end
67 end,