debugloop / telescope-undo.nvim

A telescope extension to view and search your undo tree 🌴
MIT License
634 stars 11 forks source link

Error caused by key pressing #61

Closed twio142 closed 3 weeks ago

twio142 commented 3 weeks ago

When I press up or down in the telescope picker, it throws this error:

E5108: Error executing lua: ...l/share/nvim/lazy/telescope.nvim/lua/telescope/utils.lua:506: E1513: Cannot switch buffer. 'winfixbuf' is enabled
stack traceback:
        [C]: in function 'nvim_win_set_buf'
        ...l/share/nvim/lazy/telescope.nvim/lua/telescope/utils.lua:506: in function 'win_set_buf_noautocmd'
        ...lescope.nvim/lua/telescope/previewers/term_previewer.lua:200: in function 'preview'
        ...share/nvim/lazy/telescope.nvim/lua/telescope/pickers.lua:1088: in function 'refresh_previewer'
        ...share/nvim/lazy/telescope.nvim/lua/telescope/pickers.lua:1041: in function 'set_selection'
        ...share/nvim/lazy/telescope.nvim/lua/telescope/pickers.lua:805: in function 'move_selection'
        ...e/nvim/lazy/telescope.nvim/lua/telescope/actions/set.lua:39: in function 'run_replace_or_original'
        ...re/nvim/lazy/telescope.nvim/lua/telescope/actions/mt.lua:65: in function 'shift_selection'
        .../nvim/lazy/telescope.nvim/lua/telescope/actions/init.lua:87: in function 'run_replace_or_original'
        ...re/nvim/lazy/telescope.nvim/lua/telescope/actions/mt.lua:65: in function 'key_func'
        ...hare/nvim/lazy/telescope.nvim/lua/telescope/mappings.lua:253: in function <...hare/nvim/lazy/telescope.nvim/lua/telescope/mappings.lua:252>

This only happens the first time the undo picker is invoked. After this error is triggered, from the next time on, the up and down keys work properly. But pressing <c-h> also causes a bug: the which_key window stays on the screen even after the telescope picker is closed.

Other telescope extensions don't have this behavior, only undo.

This is how I load the plugin (with lazy.nvim):

  {
    'nvim-telescope/telescope.nvim',
    -- further telescope configs
  },
  {
    "debugloop/telescope-undo.nvim",
    dependencies = {
      {
        "nvim-telescope/telescope.nvim",
        dependencies = { "nvim-lua/plenary.nvim" },
      },
    },
    keys = {
      { "<leader>su", "<cmd>Telescope undo<cr>", desc = "[U]ndo history" },
    },
    opts = {
      extensions = {
        undo = {
          layout_strategy = 'vertical',
        },
      },
    },
    config = function(_, opts)
      require("telescope").setup(opts)
      require("telescope").load_extension("undo")
    end,
  }
twio142 commented 3 weeks ago

I figured it out. I have a auto command that does set winfixbuf on TermOpen, and this gets triggered when telescope is invoked. 😅