Skip to content

Commit d087a82

Browse files
committed
refactor(#2942): multi instance: move find_node_line to Explorer
1 parent f92cc3a commit d087a82

File tree

3 files changed

+22
-23
lines changed

3 files changed

+22
-23
lines changed

lua/nvim-tree/actions/moves/item.lua

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ local function move_prev_recursive(explorer, what, skip_gitignored)
191191
if node_init.name == ".." then -- root node
192192
view.set_cursor({ 1, 0 }) -- move to root node (position 1)
193193
else
194-
local node_init_line = utils.find_node_line(node_init)
194+
local node_init_line = explorer:find_node_line(node_init)
195195
if node_init_line < 0 then
196196
return
197197
end

lua/nvim-tree/explorer/init.lua

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -551,6 +551,27 @@ function Explorer:place_cursor_on_node()
551551
end
552552
end
553553

554+
-- Find the line number of a node.
555+
---@param node Node?
556+
---@return integer -1 not found
557+
function Explorer:find_node_line(node)
558+
if not node then
559+
return -1
560+
end
561+
562+
local first_node_line = core.get_nodes_starting_line()
563+
local nodes_by_line = utils.get_nodes_by_line(self.nodes, first_node_line)
564+
local iter_start, iter_end = first_node_line, #nodes_by_line
565+
566+
for line = iter_start, iter_end, 1 do
567+
if nodes_by_line[line] == node then
568+
return line
569+
end
570+
end
571+
572+
return -1
573+
end
574+
554575
---Api.tree.get_nodes
555576
---@return nvim_tree.api.Node
556577
function Explorer:get_nodes()

lua/nvim-tree/utils.lua

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -134,28 +134,6 @@ function M.find_node(nodes, fn)
134134
return node, i
135135
end
136136

137-
-- Find the line number of a node.
138-
-- Return -1 is node is nil or not found.
139-
---@param node Node?
140-
---@return integer
141-
function M.find_node_line(node)
142-
if not node then
143-
return -1
144-
end
145-
146-
local first_node_line = require("nvim-tree.core").get_nodes_starting_line()
147-
local nodes_by_line = M.get_nodes_by_line(require("nvim-tree.core").get_explorer().nodes, first_node_line)
148-
local iter_start, iter_end = first_node_line, #nodes_by_line
149-
150-
for line = iter_start, iter_end, 1 do
151-
if nodes_by_line[line] == node then
152-
return line
153-
end
154-
end
155-
156-
return -1
157-
end
158-
159137
---@param extmarks vim.api.keyset.get_extmark_item[] as per vim.api.nvim_buf_get_extmarks
160138
---@return number
161139
function M.extmarks_length(extmarks)

0 commit comments

Comments
 (0)