Skip to content

Disabling window picker causes splits to garble the layout #1671

Closed
@naquad

Description

@naquad

Description

When disabling the window_picker NvimTree's open-in-a-split functionality opens new NvimTree windows and tries to create a split there.

Neovim version

NVIM v0.8.0
Build type: Release
LuaJIT 2.1.0-beta3

Operating system and version

Arch Linux 5.19.12-zen1-1-zen

nvim-tree version

2b97063

Minimal config

vim.cmd [[set runtimepath=$VIMRUNTIME]]
vim.cmd [[set packpath=/tmp/nvt-min/site]]

-- these give 100% reproducibility
-- I've been encountering the issue w/o these settings,
-- although sometimes it was working
vim.o.splitbelow = true
vim.o.splitright = true

-- optional
vim.o.background = 'dark'
vim.cmd [[ color slate ]]

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 = {
        window_picker = {
          enable = false
        }
      }
    }
  }
end

Steps to reproduce

  1. Open NeoVIM in the directory containing at least 4 files
  2. NvimTreeOpen
  3. Request NvimTree to open file1 (<CR>)
  4. Switch back to NvimTree
  5. Open file2 in the split (<C-x>)
  6. Switch back to NvimTree
  7. Open file3 in the split
  8. Switch back to NvimTree
  9. Open file4 in the split
  10. Close all windows except any file and NvimTree
  11. Switch back to NvimTree
  12. Open some other file in a split

Screen recording: asciicast

Expected behavior

Expecting NvimTree to open the requested file as a split of another window.

Actual behavior

NvimTree creates the second own window and splits it.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingreproducedIssue confirmed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions