Skip to content

Can't open a buffer in new tabpage when quit_on_open + hijack_unnamed_buffer_when_opening are true #2851

Closed
@Gremious

Description

@Gremious

Description

If you set actions.open_file.quit_on_open = true and hijack_unnamed_buffer_when_opening = true, then you can't open a new buffer from nvim-tree in a second tabpage, as it seemingly auto-closes both the buffer and the tabpage.

Neovim version

NVIM v0.10.0
Build type: Release
LuaJIT 2.1.1713484068

Operating system and version

Windows 11

Windows variant

No response

nvim-tree version

4e396b2

Clean room replication

vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1

vim.cmd [[set runtimepath=$VIMRUNTIME]]
vim.cmd [[set packpath=/tmp/nvt-min/site]]
local package_root = "/tmp/nvt-min/site/pack"
local install_path = package_root .. "/packer/start/packer.nvim"
local function load_plugins()
  require("packer").startup {
    {
      "wbthomason/packer.nvim",
      "nvim-tree/nvim-tree.lua",
      "nvim-tree/nvim-web-devicons",
      -- ADD PLUGINS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
    },
    config = {
      package_root = package_root,
      compile_path = install_path .. "/plugin/packer_compiled.lua",
      display = { non_interactive = true },
    },
  }
end
if vim.fn.isdirectory(install_path) == 0 then
  print "Installing nvim-tree and dependencies."
  vim.fn.system { "git", "clone", "--depth=1", "https://github.com/wbthomason/packer.nvim", install_path }
end
load_plugins()
require("packer").sync()
vim.cmd [[autocmd User PackerComplete ++once echo "Ready!" | lua setup()]]
vim.opt.termguicolors = true
vim.opt.cursorline = true

-- MODIFY NVIM-TREE SETTINGS THAT ARE _NECESSARY_ FOR REPRODUCING THE ISSUE
_G.setup = function()
  require("nvim-tree").setup {
	actions = {
		open_file = {
			quit_on_open = true,
		},
	},

	hijack_unnamed_buffer_when_opening = true,
  }
end

-- UNCOMMENT this block for diagnostics issues, substituting pattern and cmd as appropriate.
-- Requires diagnostics.enable = true in setup.
--[[
vim.api.nvim_create_autocmd("FileType", {
  pattern = "lua",
  callback = function()
    vim.lsp.start { cmd = { "lua-language-server" } }
  end,
})
]]

Steps to reproduce

nvim -nu /tmp/nvt-min.lua
Open any buffer, existing file or not, in the default tabpage, e.g. :e foo.txt or via nvim tree
:tabnew
:NvimTreeOpen
Open any other file via nvim tree

Expected behavior

Should open a file/buffer in the second tabpage, same as doing a :e bar.txt would

Actual behavior

Kills the new tabpage and the file buffer am trying to open.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions