gbprod/yanky.nvim

`yanky.cycle(-1)` reaches first item, CursorMove cancel event do not take place

aceforeverd opened this issue · 1 comments

yanky.cycle(-1) stop at first item, move cancel event do not work afterwards

setup

local function map_c_n()
  if require('yanky').can_cycle() then
    require('yanky').cycle(1)
  else
    vim.cmd([[execute "normal! \<c-n>"]])
  end
end

local function map_c_p()
  if require('yanky').can_cycle() then
    require('yanky').cycle(-1)
  else
    vim.cmd([[FZF --info=inline]])
  end
end

  require('yanky').setup({
    ring = {
      cancel_event = 'move',
    },
  })
  do_map({
    n = {
      p = [[<Plug>(YankyPutAfter)]],
      P = [[<Plug>(YankyPutBefore)]],
      gp = [[<Plug>(YankyGPutAfter)]],
      gP = [[<Plug>(YankyGPutBefore)]],
      ['<c-n>'] = map_c_n,
      ['<c-p>'] = map_c_p,
    },
    x = {
      p = [[<Plug>(YankyPutAfter)]],
      P = [[<Plug>(YankyPutBefore)]],
      gp = [[<Plug>(YankyGPutAfter)]],
      gP = [[<Plug>(YankyGPutBefore)]],
    },
  }, {})

reproduce:

:help 
p
<c-p> " cycle to previous yank, but returns 'Reached first item'
j " move cursor, cancel event not take place

cancel autocmd cleared in

yanky.nvim/lua/yanky.lua

Lines 185 to 187 in b125613

if nil ~= yanky.ring.state.augroup then
vim.api.nvim_clear_autocmds({ group = yanky.ring.state.augroup })
end
,
but cycle() returns in

yanky.nvim/lua/yanky.lua

Lines 210 to 212 in b125613

if nil == next_content then
vim.notify("Reached first item", vim.log.levels.INFO)
return

attach_cancel never get called again