chore: resolve undefined-field

This commit is contained in:
Alexander Courtis
2024-10-27 14:37:59 +11:00
parent 5c46c9c58a
commit e82db1c44d
5 changed files with 46 additions and 62 deletions

View File

@@ -1,5 +1,3 @@
local git_utils = require("nvim-tree.git.utils")
local DirectoryNode = require("nvim-tree.node.directory")
---@class (exact) DirectoryLinkNode: DirectoryNode
@@ -36,11 +34,24 @@ 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)
self.git_status = git_utils.git_status_dir(parent_ignored, status, self.link_to, self.absolute_path)
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
end
---Create a sanitized partial copy of a node, populating children recursively.

View File

@@ -1,5 +1,3 @@
local git_utils = require("nvim-tree.git.utils")
local Node = require("nvim-tree.node")
---@class (exact) DirectoryNode: Node
@@ -69,7 +67,20 @@ end
---@param parent_ignored boolean
---@param status table|nil
function DirectoryNode:update_git_status(parent_ignored, status)
self.git_status = git_utils.git_status_dir(parent_ignored, status, self.absolute_path, nil)
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
end
---@return string[]? xy short-format statuses

View File

@@ -1,5 +1,3 @@
local git_utils = require("nvim-tree.git.utils")
local FileNode = require("nvim-tree.node.file")
---@class (exact) FileLinkNode: FileNode
@@ -32,11 +30,16 @@ 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 = git_utils.git_status_file(parent_ignored, status, self.link_to, self.absolute_path)
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
end
---Create a sanitized partial copy of a node

View File

@@ -1,4 +1,3 @@
local git_utils = require("nvim-tree.git.utils")
local utils = require("nvim-tree.utils")
local Node = require("nvim-tree.node")
@@ -44,7 +43,12 @@ end
---@param parent_ignored boolean
---@param status table|nil
function FileNode:update_git_status(parent_ignored, status)
self.git_status = git_utils.git_status_file(parent_ignored, status, self.absolute_path, nil)
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
end
---@return string[]? xy short-format statuses