nvim-tree / nvim-tree.lua

A file explorer tree for neovim written in lua
Other
6.99k stars 606 forks source link

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

Closed alex-courtis closed 1 year ago

alex-courtis commented 1 year ago

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

alex-courtis commented 1 year ago

Discovered while investigating #1998

alex-courtis commented 1 year ago

Find occurs twice when with_open is set:

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.

alex-courtis commented 1 year ago

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

alex-courtis commented 1 year ago

Will be resolved by #2011