Skip to content

Commit

Permalink
chore: resolve undefined-field
Browse files Browse the repository at this point in the history
  • Loading branch information
alex-courtis committed Oct 27, 2024
1 parent 5c46c9c commit e82db1c
Show file tree
Hide file tree
Showing 5 changed files with 46 additions and 62 deletions.
45 changes: 0 additions & 45 deletions lua/nvim-tree/git/utils.lua
Original file line number Diff line number Diff line change
Expand Up @@ -127,51 +127,6 @@ 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
Expand Down
23 changes: 17 additions & 6 deletions lua/nvim-tree/node/directory-link.lua
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
local git_utils = require("nvim-tree.git.utils")

local DirectoryNode = require("nvim-tree.node.directory")

---@class (exact) DirectoryLinkNode: DirectoryNode
Expand Down Expand Up @@ -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.
Expand Down
17 changes: 14 additions & 3 deletions lua/nvim-tree/node/directory.lua
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
local git_utils = require("nvim-tree.git.utils")

local Node = require("nvim-tree.node")

---@class (exact) DirectoryNode: Node
Expand Down Expand Up @@ -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
Expand Down
15 changes: 9 additions & 6 deletions lua/nvim-tree/node/file-link.lua
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
local git_utils = require("nvim-tree.git.utils")

local FileNode = require("nvim-tree.node.file")

---@class (exact) FileLinkNode: FileNode
Expand Down Expand Up @@ -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
Expand Down
8 changes: 6 additions & 2 deletions lua/nvim-tree/node/file.lua
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
local git_utils = require("nvim-tree.git.utils")
local utils = require("nvim-tree.utils")

local Node = require("nvim-tree.node")
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit e82db1c

Please sign in to comment.