fix(dirchange): do not change dir when switching windows
- Avoid changing dir when switching windows, except when changing tabpage. - Load nvim-tree with passed directory when opening with `nvim DIR` Fixes #858 #720
This commit is contained in:
@@ -225,7 +225,7 @@ function M.on_enter(opts)
|
|||||||
M.hijack_current_window()
|
M.hijack_current_window()
|
||||||
end
|
end
|
||||||
|
|
||||||
lib.init(should_open)
|
lib.init(should_open, lib.Tree.cwd)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function is_file_readable(fname)
|
local function is_file_readable(fname)
|
||||||
|
|||||||
@@ -455,12 +455,17 @@ function M.collapse_all()
|
|||||||
M.redraw()
|
M.redraw()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local current_tab = api.nvim_get_current_tabpage()
|
||||||
|
|
||||||
function M.change_dir(name)
|
function M.change_dir(name)
|
||||||
local foldername = name == '..' and vim.fn.fnamemodify(M.Tree.cwd, ':h') or name
|
local foldername = name == '..' and vim.fn.fnamemodify(M.Tree.cwd, ':h') or name
|
||||||
local no_cwd_change = vim.fn.expand(foldername) == M.Tree.cwd
|
local no_cwd_change = vim.fn.expand(foldername) == M.Tree.cwd
|
||||||
if no_cwd_change then
|
local new_tab = api.nvim_get_current_tabpage()
|
||||||
|
local is_window = vim.v.event.scope == "window" and new_tab == current_tab
|
||||||
|
if no_cwd_change or is_window then
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
current_tab = new_tab
|
||||||
|
|
||||||
vim.cmd('lcd '..vim.fn.fnameescape(foldername))
|
vim.cmd('lcd '..vim.fn.fnameescape(foldername))
|
||||||
M.init(false, foldername)
|
M.init(false, foldername)
|
||||||
|
|||||||
Reference in New Issue
Block a user