diff --git a/lua/nvim-tree/actions/moves/item.lua b/lua/nvim-tree/actions/moves/item.lua index 2b081273..462e2870 100644 --- a/lua/nvim-tree/actions/moves/item.lua +++ b/lua/nvim-tree/actions/moves/item.lua @@ -34,11 +34,16 @@ end ---@param what string type of status ---@param skip_gitignored boolean default false local function move(where, what, skip_gitignored) + local explorer = core.get_explorer() + if not explorer then + return + end + local first_node_line = core.get_nodes_starting_line() - local nodes_by_line = utils.get_nodes_by_line(core.get_explorer().nodes, first_node_line) + local nodes_by_line = utils.get_nodes_by_line(explorer.nodes, first_node_line) local iter_start, iter_end, iter_step, cur, first, nex - local cursor = lib.get_cursor_position() + local cursor = explorer:get_cursor_position() if cursor and cursor[1] < first_node_line then cur = cursor[1] end diff --git a/lua/nvim-tree/explorer/init.lua b/lua/nvim-tree/explorer/init.lua index b0cbc996..6dbbd172 100644 --- a/lua/nvim-tree/explorer/init.lua +++ b/lua/nvim-tree/explorer/init.lua @@ -374,6 +374,19 @@ function Explorer:reload_git() event_running = false end +---Cursor position as per vim.api.nvim_win_get_cursor +---nil on no explorer or invalid view win +---@return integer[]|nil +function Explorer:get_cursor_position() + local winnr = view.get_winnr() + if not winnr or not vim.api.nvim_win_is_valid(winnr) then + return + end + + return vim.api.nvim_win_get_cursor(winnr) +end + + function Explorer:setup(opts) config = opts require("nvim-tree.explorer.watch").setup(opts) diff --git a/lua/nvim-tree/lib.lua b/lua/nvim-tree/lib.lua index 15ccb337..2b9ead58 100644 --- a/lua/nvim-tree/lib.lua +++ b/lua/nvim-tree/lib.lua @@ -13,22 +13,6 @@ local M = { target_winid = nil, } ----Cursor position as per vim.api.nvim_win_get_cursor ----nil on no explorer or invalid view win ----@return integer[]|nil -function M.get_cursor_position() - if not core.get_explorer() then - return - end - - local winnr = view.get_winnr() - if not winnr or not vim.api.nvim_win_is_valid(winnr) then - return - end - - return vim.api.nvim_win_get_cursor(winnr) -end - ---@return Node|nil function M.get_node_at_cursor() local explorer = core.get_explorer() @@ -36,7 +20,7 @@ function M.get_node_at_cursor() return end - local cursor = M.get_cursor_position() + local cursor = explorer:get_cursor_position() if not cursor then return end