Skip to content

Commit eb3f6f9

Browse files
committed
refactor(#3255): wire remaining node.navigate API impl directly to functions
1 parent e7e0920 commit eb3f6f9

File tree

2 files changed

+82
-33
lines changed

2 files changed

+82
-33
lines changed

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

Lines changed: 66 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -215,32 +215,77 @@ end
215215
---@field recurse boolean?
216216

217217
---@param opts NavigationItemOpts
218-
---@return fun()
219-
function M.fn(opts)
220-
return function()
221-
local explorer = core.get_explorer()
222-
if not explorer then
223-
return
224-
end
218+
local function item(opts)
219+
local explorer = core.get_explorer()
220+
if not explorer then
221+
return
222+
end
225223

226-
local recurse = false
224+
local recurse = false
227225

228-
-- recurse only valid for git and diag moves.
229-
if (opts.what == "git" or opts.what == "diag") and opts.recurse ~= nil then
230-
recurse = opts.recurse
231-
end
226+
-- recurse only valid for git and diag moves.
227+
if (opts.what == "git" or opts.what == "diag") and opts.recurse ~= nil then
228+
recurse = opts.recurse
229+
end
232230

233-
if not recurse then
234-
move(explorer, opts.where, opts.what, opts.skip_gitignored)
235-
return
236-
end
231+
if not recurse then
232+
move(explorer, opts.where, opts.what, opts.skip_gitignored)
233+
return
234+
end
237235

238-
if opts.where == "next" then
239-
move_next_recursive(explorer, opts.what, opts.skip_gitignored)
240-
elseif opts.where == "prev" then
241-
move_prev_recursive(explorer, opts.what, opts.skip_gitignored)
242-
end
236+
if opts.where == "next" then
237+
move_next_recursive(explorer, opts.what, opts.skip_gitignored)
238+
elseif opts.where == "prev" then
239+
move_prev_recursive(explorer, opts.what, opts.skip_gitignored)
243240
end
244241
end
245242

243+
function M.git_next()
244+
item({ where = "next", what = "git" })
245+
end
246+
247+
function M.git_next_skip_gitignored()
248+
item({ where = "next", what = "git", skip_gitignored = true })
249+
end
250+
251+
function M.git_next_recursive()
252+
item({ where = "next", what = "git", recurse = true })
253+
end
254+
255+
function M.git_prev()
256+
item({ where = "prev", what = "git" })
257+
end
258+
259+
function M.git_prev_skip_gitignored()
260+
item({ where = "prev", what = "git", skip_gitignored = true })
261+
end
262+
263+
function M.git_prev_recursive()
264+
item({ where = "prev", what = "git", recurse = true })
265+
end
266+
267+
function M.diagnostics_next()
268+
item({ where = "next", what = "diag" })
269+
end
270+
271+
function M.diagnostics_next_recursive()
272+
item({ where = "next", what = "diag", recurse = true })
273+
end
274+
275+
function M.diagnostics_prev()
276+
item({ where = "prev", what = "diag" })
277+
end
278+
279+
function M.diagnostics_prev_recursive()
280+
item({ where = "prev", what = "diag", recurse = true })
281+
end
282+
283+
function M.opened_next()
284+
item({ where = "next", what = "opened" })
285+
end
286+
287+
function M.opened_prev()
288+
item({ where = "prev", what = "opened" })
289+
end
290+
246291
return M

lua/nvim-tree/api/impl/post.lua

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -231,20 +231,24 @@ function M.hydrate(api)
231231
api.node.navigate.sibling.prev = wrap_node(actions.moves.sibling.prev)
232232
api.node.navigate.sibling.first = wrap_node(actions.moves.sibling.first)
233233
api.node.navigate.sibling.last = wrap_node(actions.moves.sibling.last)
234+
234235
api.node.navigate.parent = wrap_node(actions.moves.parent.move)
235236
api.node.navigate.parent_close = wrap_node(actions.moves.parent.move_close)
236-
api.node.navigate.git.next = wrap_node(actions.moves.item.fn({ where = "next", what = "git" }))
237-
api.node.navigate.git.next_skip_gitignored = wrap_node(actions.moves.item.fn({ where = "next", what = "git", skip_gitignored = true }))
238-
api.node.navigate.git.next_recursive = wrap_node(actions.moves.item.fn({ where = "next", what = "git", recurse = true }))
239-
api.node.navigate.git.prev = wrap_node(actions.moves.item.fn({ where = "prev", what = "git" }))
240-
api.node.navigate.git.prev_skip_gitignored = wrap_node(actions.moves.item.fn({ where = "prev", what = "git", skip_gitignored = true }))
241-
api.node.navigate.git.prev_recursive = wrap_node(actions.moves.item.fn({ where = "prev", what = "git", recurse = true }))
242-
api.node.navigate.diagnostics.next = wrap_node(actions.moves.item.fn({ where = "next", what = "diag" }))
243-
api.node.navigate.diagnostics.next_recursive = wrap_node(actions.moves.item.fn({ where = "next", what = "diag", recurse = true }))
244-
api.node.navigate.diagnostics.prev = wrap_node(actions.moves.item.fn({ where = "prev", what = "diag" }))
245-
api.node.navigate.diagnostics.prev_recursive = wrap_node(actions.moves.item.fn({ where = "prev", what = "diag", recurse = true }))
246-
api.node.navigate.opened.next = wrap_node(actions.moves.item.fn({ where = "next", what = "opened" }))
247-
api.node.navigate.opened.prev = wrap_node(actions.moves.item.fn({ where = "prev", what = "opened" }))
237+
238+
api.node.navigate.git.next = actions.moves.item.git_next
239+
api.node.navigate.git.next_skip_gitignored = actions.moves.item.git_next_skip_gitignored
240+
api.node.navigate.git.next_recursive = actions.moves.item.git_next_recursive
241+
api.node.navigate.git.prev = actions.moves.item.git_prev
242+
api.node.navigate.git.prev_skip_gitignored = actions.moves.item.git_prev_skip_gitignored
243+
api.node.navigate.git.prev_recursive = actions.moves.item.git_prev_recursive
244+
245+
api.node.navigate.diagnostics.next = actions.moves.item.diagnostics_next
246+
api.node.navigate.diagnostics.next_recursive = actions.moves.item.diagnostics_next_recursive
247+
api.node.navigate.diagnostics.prev = actions.moves.item.diagnostics_prev
248+
api.node.navigate.diagnostics.prev_recursive = actions.moves.item.diagnostics_prev_recursive
249+
250+
api.node.navigate.opened.next = actions.moves.item.opened_next
251+
api.node.navigate.opened.prev = actions.moves.item.opened_prev
248252

249253
api.node.expand = wrap_node(wrap_explorer("expand_node"))
250254
api.node.collapse = wrap_node(actions.tree.collapse.node)

0 commit comments

Comments
 (0)