refactor: take single opts param on node navigation (#2584)
* refactor: take single `opts` param on node navigation * `MoveOpts` -> `NavigationItemOpts`
This commit is contained in:
parent
4891d6cec3
commit
34780aca5b
@ -6,19 +6,22 @@ local explorer_node = require "nvim-tree.explorer.node"
|
|||||||
|
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
---@param where string
|
---@class NavigationItemOpts
|
||||||
---@param what string
|
---@field where string
|
||||||
|
---@field what string
|
||||||
|
|
||||||
|
---@param opts NavigationItemOpts
|
||||||
---@return fun()
|
---@return fun()
|
||||||
function M.fn(where, what)
|
function M.fn(opts)
|
||||||
return function()
|
return function()
|
||||||
local node_cur = lib.get_node_at_cursor()
|
local node_cur = lib.get_node_at_cursor()
|
||||||
local first_node_line = core.get_nodes_starting_line()
|
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(core.get_explorer().nodes, first_node_line)
|
||||||
local iter_start, iter_end, iter_step, cur, first, nex
|
local iter_start, iter_end, iter_step, cur, first, nex
|
||||||
|
|
||||||
if where == "next" then
|
if opts.where == "next" then
|
||||||
iter_start, iter_end, iter_step = first_node_line, #nodes_by_line, 1
|
iter_start, iter_end, iter_step = first_node_line, #nodes_by_line, 1
|
||||||
elseif where == "prev" then
|
elseif opts.where == "prev" then
|
||||||
iter_start, iter_end, iter_step = #nodes_by_line, first_node_line, -1
|
iter_start, iter_end, iter_step = #nodes_by_line, first_node_line, -1
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -26,11 +29,11 @@ function M.fn(where, what)
|
|||||||
local node = nodes_by_line[line]
|
local node = nodes_by_line[line]
|
||||||
local valid = false
|
local valid = false
|
||||||
|
|
||||||
if what == "git" then
|
if opts.what == "git" then
|
||||||
valid = explorer_node.get_git_status(node) ~= nil
|
valid = explorer_node.get_git_status(node) ~= nil
|
||||||
elseif what == "diag" then
|
elseif opts.what == "diag" then
|
||||||
valid = node.diag_status ~= nil
|
valid = node.diag_status ~= nil
|
||||||
elseif what == "opened" then
|
elseif opts.what == "opened" then
|
||||||
valid = vim.fn.bufloaded(node.absolute_path) ~= 0
|
valid = vim.fn.bufloaded(node.absolute_path) ~= 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -212,12 +212,12 @@ Api.node.navigate.sibling.first = wrap_node(require("nvim-tree.actions.moves.sib
|
|||||||
Api.node.navigate.sibling.last = wrap_node(require("nvim-tree.actions.moves.sibling").fn "last")
|
Api.node.navigate.sibling.last = wrap_node(require("nvim-tree.actions.moves.sibling").fn "last")
|
||||||
Api.node.navigate.parent = wrap_node(require("nvim-tree.actions.moves.parent").fn(false))
|
Api.node.navigate.parent = wrap_node(require("nvim-tree.actions.moves.parent").fn(false))
|
||||||
Api.node.navigate.parent_close = wrap_node(require("nvim-tree.actions.moves.parent").fn(true))
|
Api.node.navigate.parent_close = wrap_node(require("nvim-tree.actions.moves.parent").fn(true))
|
||||||
Api.node.navigate.git.next = wrap_node(require("nvim-tree.actions.moves.item").fn("next", "git"))
|
Api.node.navigate.git.next = wrap_node(require("nvim-tree.actions.moves.item").fn { where = "next", what = "git" })
|
||||||
Api.node.navigate.git.prev = wrap_node(require("nvim-tree.actions.moves.item").fn("prev", "git"))
|
Api.node.navigate.git.prev = wrap_node(require("nvim-tree.actions.moves.item").fn { where = "prev", what = "git" })
|
||||||
Api.node.navigate.diagnostics.next = wrap_node(require("nvim-tree.actions.moves.item").fn("next", "diag"))
|
Api.node.navigate.diagnostics.next = wrap_node(require("nvim-tree.actions.moves.item").fn { where = "next", what = "diag" })
|
||||||
Api.node.navigate.diagnostics.prev = wrap_node(require("nvim-tree.actions.moves.item").fn("prev", "diag"))
|
Api.node.navigate.diagnostics.prev = wrap_node(require("nvim-tree.actions.moves.item").fn { where = "prev", what = "diag" })
|
||||||
Api.node.navigate.opened.next = wrap_node(require("nvim-tree.actions.moves.item").fn("next", "opened"))
|
Api.node.navigate.opened.next = wrap_node(require("nvim-tree.actions.moves.item").fn { where = "next", what = "opened" })
|
||||||
Api.node.navigate.opened.prev = wrap_node(require("nvim-tree.actions.moves.item").fn("prev", "opened"))
|
Api.node.navigate.opened.prev = wrap_node(require("nvim-tree.actions.moves.item").fn { where = "prev", what = "opened" })
|
||||||
|
|
||||||
Api.git.reload = wrap(require("nvim-tree.actions.reloaders.reloaders").reload_git)
|
Api.git.reload = wrap(require("nvim-tree.actions.reloaders.reloaders").reload_git)
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user