nvim-tree / nvim-tree.lua

A file explorer tree for neovim written in lua

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

`update_focused_file.enable` Unnecessary Find On nvim-tree enter

alex-courtis opened this issue · comments

Description

Find file is invoked when entering the nvim-tree buffer. This is unnecessary.

:NvimTreeFindFile will result in two filesystem/git refreshes.

Neovim version

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

Operating system and version

Linux 6.1.11-arch1-1

nvim-tree version

git log --format='%h' -n 1

Minimal config

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 {
  update_focused_file = {
    enable = true,
  }
}
end

Steps to reproduce

Enable profiling

Open tree.

Open a file.

Enter tree window: unnecessary refresh occurs

Enter file window, :NvimTreeFindFile: two refreshes occur

Expected behavior

No response

Actual behavior

No response

Discovered while investigating #1998

Find occurs twice when with_open is set:

  • nvim-tree.open will always be called, with find_file false
  • nvim-tree.open will find the file if update_focused_file.enable

Cannot replicate the find behaviour on window enter; perhaps I was using tree.open instead.

This isn't such a big problem following #2010 as the find will no longer refresh.

This would be a good time to add the api open/toggle options to find_file and clean up all the find file codepaths.

Will be resolved by #2011