Revert "chore: resolve undefined-field"
This reverts commit e82db1c44d.
This commit is contained in:
parent
e82db1c44d
commit
a16e67f3f4
@ -127,6 +127,51 @@ function M.file_status_to_dir_status(status, cwd)
|
||||
return r
|
||||
end
|
||||
|
||||
---Git file status for an absolute path with optional fallback
|
||||
---@param parent_ignored boolean
|
||||
---@param status table?
|
||||
---@param path string
|
||||
---@param path_fallback string?
|
||||
---@return GitStatus
|
||||
function M.git_status_file(parent_ignored, status, path, path_fallback)
|
||||
---@type GitStatus
|
||||
local st = {}
|
||||
|
||||
if parent_ignored then
|
||||
st.file = "!!"
|
||||
elseif status and status.files then
|
||||
st.file = status.files[path] or status.files[path_fallback]
|
||||
end
|
||||
|
||||
return st
|
||||
end
|
||||
|
||||
---Git file and directory status for an absolute path with optional file fallback
|
||||
---@param parent_ignored boolean
|
||||
---@param status table?
|
||||
---@param path string
|
||||
---@param path_file string? alternative file path when no other file status
|
||||
---@return GitStatus?
|
||||
function M.git_status_dir(parent_ignored, status, path, path_file)
|
||||
---@type GitStatus?
|
||||
local st
|
||||
|
||||
if parent_ignored then
|
||||
st = {}
|
||||
st.file = "!!"
|
||||
elseif status then
|
||||
st = {}
|
||||
st.file = status.files and (status.files[path] or status.files[path_file])
|
||||
if status.dirs then
|
||||
st.dir = {}
|
||||
st.dir.direct = status.dirs.direct and status.dirs.direct[path]
|
||||
st.dir.indirect = status.dirs.indirect and status.dirs.indirect[path]
|
||||
end
|
||||
end
|
||||
|
||||
return st
|
||||
end
|
||||
|
||||
function M.setup(opts)
|
||||
if opts.git.cygwin_support then
|
||||
M.use_cygpath = vim.fn.executable("cygpath") == 1
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
local git_utils = require("nvim-tree.git.utils")
|
||||
|
||||
local DirectoryNode = require("nvim-tree.node.directory")
|
||||
|
||||
---@class (exact) DirectoryLinkNode: DirectoryNode
|
||||
@ -34,24 +36,11 @@ function DirectoryLinkNode:destroy()
|
||||
DirectoryNode.destroy(self)
|
||||
end
|
||||
|
||||
---Update the directory GitStatus of link target and the file status of the link itself
|
||||
---@param parent_ignored boolean
|
||||
---@param status table|nil
|
||||
-----Update the directory GitStatus of link target and the file status of the link itself
|
||||
-----@param parent_ignored boolean
|
||||
-----@param status table|nil
|
||||
function DirectoryLinkNode:update_git_status(parent_ignored, status)
|
||||
if parent_ignored then
|
||||
self.git_status = {}
|
||||
self.git_status.file = "!!"
|
||||
elseif status then
|
||||
self.git_status = {}
|
||||
self.git_status.file = status.files and (status.files[self.link_to] or status.files[self.absolute_path])
|
||||
if status.dirs then
|
||||
self.git_status.dir = {}
|
||||
self.git_status.dir.direct = status.dirs.direct and status.dirs.direct[self.absolute_path]
|
||||
self.git_status.dir.indirect = status.dirs.indirect and status.dirs.indirect[self.absolute_path]
|
||||
end
|
||||
else
|
||||
self.git_status = nil
|
||||
end
|
||||
self.git_status = git_utils.git_status_dir(parent_ignored, status, self.link_to, self.absolute_path)
|
||||
end
|
||||
|
||||
---Create a sanitized partial copy of a node, populating children recursively.
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
local git_utils = require("nvim-tree.git.utils")
|
||||
|
||||
local Node = require("nvim-tree.node")
|
||||
|
||||
---@class (exact) DirectoryNode: Node
|
||||
@ -67,20 +69,7 @@ end
|
||||
---@param parent_ignored boolean
|
||||
---@param status table|nil
|
||||
function DirectoryNode:update_git_status(parent_ignored, status)
|
||||
if parent_ignored then
|
||||
self.git_status = {}
|
||||
self.git_status.file = "!!"
|
||||
elseif status then
|
||||
self.git_status = {}
|
||||
self.git_status.file = status.files and status.files[self.absolute_path]
|
||||
if status.dirs then
|
||||
self.git_status.dir = {}
|
||||
self.git_status.dir.direct = status.dirs.direct and status.dirs.direct[self.absolute_path]
|
||||
self.git_status.dir.indirect = status.dirs.indirect and status.dirs.indirect[self.absolute_path]
|
||||
end
|
||||
else
|
||||
self.git_status = nil
|
||||
end
|
||||
self.git_status = git_utils.git_status_dir(parent_ignored, status, self.absolute_path, nil)
|
||||
end
|
||||
|
||||
---@return string[]? xy short-format statuses
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
local git_utils = require("nvim-tree.git.utils")
|
||||
|
||||
local FileNode = require("nvim-tree.node.file")
|
||||
|
||||
---@class (exact) FileLinkNode: FileNode
|
||||
@ -30,16 +32,11 @@ function FileLinkNode:destroy()
|
||||
FileNode.destroy(self)
|
||||
end
|
||||
|
||||
---Update the GitStatus of the target otherwise the link itself
|
||||
---@param parent_ignored boolean
|
||||
---@param status table|nil
|
||||
-----Update the GitStatus of the target otherwise the link itself
|
||||
-----@param parent_ignored boolean
|
||||
-----@param status table|nil
|
||||
function FileLinkNode:update_git_status(parent_ignored, status)
|
||||
self.git_status = {}
|
||||
if parent_ignored then
|
||||
self.git_status.file = "!!"
|
||||
elseif status and status.files then
|
||||
self.git_status.file = status.files[self.link_to] or status.files[self.absolute_path]
|
||||
end
|
||||
self.git_status = git_utils.git_status_file(parent_ignored, status, self.link_to, self.absolute_path)
|
||||
end
|
||||
|
||||
---Create a sanitized partial copy of a node
|
||||
|
||||
@ -1,3 +1,4 @@
|
||||
local git_utils = require("nvim-tree.git.utils")
|
||||
local utils = require("nvim-tree.utils")
|
||||
|
||||
local Node = require("nvim-tree.node")
|
||||
@ -43,12 +44,7 @@ end
|
||||
---@param parent_ignored boolean
|
||||
---@param status table|nil
|
||||
function FileNode:update_git_status(parent_ignored, status)
|
||||
self.git_status = {}
|
||||
if parent_ignored then
|
||||
self.git_status.file = "!!"
|
||||
elseif status and status.files then
|
||||
self.git_status.file = status.files[self.absolute_path]
|
||||
end
|
||||
self.git_status = git_utils.git_status_file(parent_ignored, status, self.absolute_path, nil)
|
||||
end
|
||||
|
||||
---@return string[]? xy short-format statuses
|
||||
|
||||
Loading…
Reference in New Issue
Block a user