From e38c38716024517be99c1dbe441854d54a20da9b Mon Sep 17 00:00:00 2001 From: Alexander Courtis Date: Tue, 29 Oct 2024 11:12:06 +1100 Subject: [PATCH] chore: resolve undefined-field --- lua/nvim-tree/api.lua | 16 +++++++++------- lua/nvim-tree/node/directory.lua | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/lua/nvim-tree/api.lua b/lua/nvim-tree/api.lua index bbb023a1..85762656 100644 --- a/lua/nvim-tree/api.lua +++ b/lua/nvim-tree/api.lua @@ -9,6 +9,7 @@ local keymap = require("nvim-tree.keymap") local notify = require("nvim-tree.notify") local DirectoryNode = require("nvim-tree.node.directory") +local FileLinkNode = require("nvim-tree.node.file-link") local RootNode = require("nvim-tree.node.root") local Api = { @@ -206,10 +207,8 @@ Api.fs.copy.relative_path = wrap_node(wrap_explorer_member("clipboard", "copy_pa ---@param mode string ---@param node Node local function edit(mode, node) - local path = node.absolute_path - if node.link_to and not node.nodes then - path = node.link_to - end + local file_link = node:as(FileLinkNode) + local path = file_link and file_link.link_to or node.absolute_path actions.node.open_file.fn(mode, path) end @@ -219,10 +218,13 @@ end local function open_or_expand_or_dir_up(mode, toggle_group) ---@param node Node return function(node) - if node.name == ".." then + local root = node:as(RootNode) + local dir = node:as(DirectoryNode) + + if root or node.name == ".." then actions.root.change_dir.fn("..") - elseif node:is(DirectoryNode) then - node:expand_or_collapse(toggle_group) + elseif dir then + dir:expand_or_collapse(toggle_group) elseif not toggle_group then edit(mode, node) end diff --git a/lua/nvim-tree/node/directory.lua b/lua/nvim-tree/node/directory.lua index 7daa32a8..8bf659a0 100644 --- a/lua/nvim-tree/node/directory.lua +++ b/lua/nvim-tree/node/directory.lua @@ -174,7 +174,7 @@ function DirectoryNode:ungroup_empty_folders() end end ----@param toggle_group boolean +---@param toggle_group boolean? function DirectoryNode:expand_or_collapse(toggle_group) toggle_group = toggle_group or false if self.has_children then