* coding style
* outlined git.show_on_open_dirs behavior
* show some icon on opendir even if show_on_open_dir=false
and show all children's status on parent
* fixed renamed icon not showing
* sorted icons
* removed DU from deleted as file will show up in tree
* fixed update_git_status in reloaders not tested
* fixed Api.git.reload()
Tested update_git_status in reloaders.lua
* sort icon only if not git signcolumn
* fixed crashing when root dir isn't git dir
* made git.show_on_dirs doc more concise
* git_statuses -> git_status for consistency
* explorer/common.lua -> explorer/node.lua
* fixed #1784 conflict
* don't order icons
* Revert "don't order icons"
This reverts commit 23f6276ef7.
57 lines
1.3 KiB
Lua
57 lines
1.3 KiB
Lua
local utils = require "nvim-tree.utils"
|
|
local view = require "nvim-tree.view"
|
|
local core = require "nvim-tree.core"
|
|
local lib = require "nvim-tree.lib"
|
|
local explorer_node = require "nvim-tree.explorer.node"
|
|
|
|
local M = {}
|
|
|
|
function M.fn(where, what)
|
|
return function()
|
|
local node_cur = lib.get_node_at_cursor()
|
|
local nodes_by_line = utils.get_nodes_by_line(core.get_explorer().nodes, core.get_nodes_starting_line())
|
|
|
|
local cur, first, prev, nex = nil, nil, nil, nil
|
|
for line, node in pairs(nodes_by_line) do
|
|
local valid = false
|
|
if what == "git" then
|
|
valid = explorer_node.get_git_status(node) ~= nil
|
|
elseif what == "diag" then
|
|
valid = node.diag_status ~= nil
|
|
end
|
|
|
|
if not first and valid then
|
|
first = line
|
|
end
|
|
|
|
if node == node_cur then
|
|
cur = line
|
|
elseif valid then
|
|
if not cur then
|
|
prev = line
|
|
end
|
|
if cur and not nex then
|
|
nex = line
|
|
break
|
|
end
|
|
end
|
|
end
|
|
|
|
if where == "prev" then
|
|
if prev then
|
|
view.set_cursor { prev, 0 }
|
|
end
|
|
else
|
|
if cur then
|
|
if nex then
|
|
view.set_cursor { nex, 0 }
|
|
end
|
|
elseif first then
|
|
view.set_cursor { first, 0 }
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
return M
|