From 61f81064dcad23db7c1d09bc284541c7ead265a2 Mon Sep 17 00:00:00 2001 From: Akmadan23 Date: Sun, 10 Dec 2023 01:54:34 +0100 Subject: [PATCH 1/2] refactor: take single `opts` param on node navigation --- lua/nvim-tree/actions/moves/item.lua | 19 +++++++++++-------- lua/nvim-tree/api.lua | 12 ++++++------ 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/lua/nvim-tree/actions/moves/item.lua b/lua/nvim-tree/actions/moves/item.lua index 15c1bc8396c..047dc991751 100644 --- a/lua/nvim-tree/actions/moves/item.lua +++ b/lua/nvim-tree/actions/moves/item.lua @@ -6,19 +6,22 @@ local explorer_node = require "nvim-tree.explorer.node" local M = {} ----@param where string ----@param what string +---@class MoveOpts +---@field where string +---@field what string + +---@param opts MoveOpts ---@return fun() -function M.fn(where, what) +function M.fn(opts) return function() local node_cur = lib.get_node_at_cursor() 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 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 - elseif where == "prev" then + elseif opts.where == "prev" then iter_start, iter_end, iter_step = #nodes_by_line, first_node_line, -1 end @@ -26,11 +29,11 @@ function M.fn(where, what) local node = nodes_by_line[line] local valid = false - if what == "git" then + if opts.what == "git" then valid = explorer_node.get_git_status(node) ~= nil - elseif what == "diag" then + elseif opts.what == "diag" then valid = node.diag_status ~= nil - elseif what == "opened" then + elseif opts.what == "opened" then valid = vim.fn.bufloaded(node.absolute_path) ~= 0 end diff --git a/lua/nvim-tree/api.lua b/lua/nvim-tree/api.lua index a57cbf4216c..be7d3854f56 100644 --- a/lua/nvim-tree/api.lua +++ b/lua/nvim-tree/api.lua @@ -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.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.git.next = wrap_node(require("nvim-tree.actions.moves.item").fn("next", "git")) -Api.node.navigate.git.prev = wrap_node(require("nvim-tree.actions.moves.item").fn("prev", "git")) -Api.node.navigate.diagnostics.next = wrap_node(require("nvim-tree.actions.moves.item").fn("next", "diag")) -Api.node.navigate.diagnostics.prev = wrap_node(require("nvim-tree.actions.moves.item").fn("prev", "diag")) -Api.node.navigate.opened.next = wrap_node(require("nvim-tree.actions.moves.item").fn("next", "opened")) -Api.node.navigate.opened.prev = wrap_node(require("nvim-tree.actions.moves.item").fn("prev", "opened")) +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 { where = "prev", what = "git" }) +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 { where = "prev", what = "diag" }) +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 { where = "prev", what = "opened" }) Api.git.reload = wrap(require("nvim-tree.actions.reloaders.reloaders").reload_git) From 8b690da49002dac1764c30fbc388ca157c00673d Mon Sep 17 00:00:00 2001 From: Akmadan23 Date: Sun, 10 Dec 2023 23:39:36 +0100 Subject: [PATCH 2/2] `MoveOpts` -> `NavigationItemOpts` --- lua/nvim-tree/actions/moves/item.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lua/nvim-tree/actions/moves/item.lua b/lua/nvim-tree/actions/moves/item.lua index 047dc991751..60b894e7a2e 100644 --- a/lua/nvim-tree/actions/moves/item.lua +++ b/lua/nvim-tree/actions/moves/item.lua @@ -6,11 +6,11 @@ local explorer_node = require "nvim-tree.explorer.node" local M = {} ----@class MoveOpts +---@class NavigationItemOpts ---@field where string ---@field what string ----@param opts MoveOpts +---@param opts NavigationItemOpts ---@return fun() function M.fn(opts) return function()