Skip to content

[mini.pick] Invalid buffer when opening a visited directory #2156

@abeldekat

Description

@abeldekat

Contributing guidelines

Module(s)

mini.pick

Neovim version

0.12 (!at least latest Nightly build!)

Description

When opening a visited directory with the visits picker, an error occurs: Invalid buffer id.

Lua :command callback: ...e/repro/site/pack/deps/start/mini.nvim/lua/mini/pick.lua:3570: BufEnter Autocommands for "*": Vim(append):Lua callback: Invalid buffer id: 3
stack traceback:
        [C]: at 0x55b2fc165620
        [C]: in function 'nvim_set_current_win'
        ...e/repro/site/pack/deps/start/mini.nvim/lua/mini/pick.lua:3570: in function 'set_curwin'
        ...e/repro/site/pack/deps/start/mini.nvim/lua/mini/pick.lua:2648: in function 'picker_stop'
        ...e/repro/site/pack/deps/start/mini.nvim/lua/mini/pick.lua:2231: in function 'f'
        ...e/repro/site/pack/deps/start/mini.nvim/lua/mini/pick.lua:2045: in function <...e/repro/site/pack/deps/start/mini.nvim/lua/mini/pick.lua:2041>
stack traceback:
        [C]: in function 'nvim_set_current_win'
        ...e/repro/site/pack/deps/start/mini.nvim/lua/mini/pick.lua:3570: in function 'set_curwin'
        ...e/repro/site/pack/deps/start/mini.nvim/lua/mini/pick.lua:2648: in function 'picker_stop'
        ...e/repro/site/pack/deps/start/mini.nvim/lua/mini/pick.lua:2231: in function 'f'
        ...e/repro/site/pack/deps/start/mini.nvim/lua/mini/pick.lua:2045: in function <...e/repro/site/pack/deps/start/mini.nvim/lua/mini/pick.lua:2041>

Reproduction

  1. Create separate 'nvim-repro' config directory:

    • '~/.config/nvim-repro/' on Unix
    • '~/AppData/Local/nvim-repro/' on Windows
  2. Inside 'nvim-repro' directory create a file named 'init.lua'.
    Populate it with the following content:

vim.cmd('echo "Installing `mini.nvim`" | redraw')
local mini_path = vim.fn.stdpath('data') .. '/site/pack/deps/start/mini.nvim'
local clone_cmd = { 'git', 'clone', '--depth=1', 'https://github.com/nvim-mini/mini.nvim', mini_path }
vim.fn.system(clone_cmd)
vim.cmd('echo "`mini.nvim` is installed" | redraw')

vim.cmd('packadd mini.nvim')
require('mini.deps').setup()

local nmap_leader = function(suffix, rhs, desc) vim.keymap.set('n', '<Leader>' .. suffix, rhs, { desc = desc }) end
vim.g.mapleader = ' '

MiniDeps.now(function()
  require('mini.extra').setup()
  require('mini.files').setup()
  require('mini.pick').setup()
  require('mini.visits').setup()

  nmap_leader('fv', '<Cmd>Pick visit_paths cwd=""<CR>', 'V[i]sit paths (all)')
end)
  1. Run NVIM_APPNAME=nvim-repro nvim (i.e. execute nvim with NVIM_APPNAME environment variable set to "nvim-repro").
    Wait for all dependencies to install.

  2. Replace this with description of interactive reproduction steps along with the behavior you observe.
    Feel free to include images/videos/etc, this helps a lot.

pick_invalid_buffer.mp4
  1. Open neovim
  2. Open a file
  3. Type :ex
  4. Open the visits picker
  5. Select the visited directory
  6. Observe the error.

Note: The error does not occur when starter is visible.

What to do after reporting an issue

After reporting the issue, it is safe (and even recommended for cleaner possible future bug reports) to remove 'nvim-repro' config from the system:

  • Delete config directory ('~/.config/nvim-repro' on Unix).
  • Delete data directory ('~/.local/share/nvim-repro' on Unix).
  • Delete state directory ('~/.local/state/nvim-repro' on Unix).

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions