From 2a386fe567f9972632c3863105c986ee1366318f Mon Sep 17 00:00:00 2001 From: Alexander Courtis Date: Mon, 21 Jul 2025 13:22:07 +1000 Subject: [PATCH 1/3] ci: luals_version 3.13.9 -> 3.15.0 (#3167) --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7d49289a..dd9e83fd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -49,7 +49,7 @@ jobs: strategy: matrix: nvim_version: [ stable, nightly ] - luals_version: [ 3.13.9 ] + luals_version: [ 3.15.0 ] env: VIMRUNTIME: /home/runner/nvim-${{ matrix.nvim_version }}/share/nvim/runtime From 543ed3cac212dc3993ef9f042f6c0812e34ddd43 Mon Sep 17 00:00:00 2001 From: Tomasz N Date: Mon, 21 Jul 2025 05:22:56 +0200 Subject: [PATCH 2/3] fix(picker): exclude full_name window id from the choice (#3165) Problem: `full_name` window from is considered as usable by picker Solution: exclude its ID (also true for nil values) Co-authored-by: Alexander Courtis --- lua/nvim-tree/actions/node/open-file.lua | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lua/nvim-tree/actions/node/open-file.lua b/lua/nvim-tree/actions/node/open-file.lua index dedd6122..f59ceb6f 100644 --- a/lua/nvim-tree/actions/node/open-file.lua +++ b/lua/nvim-tree/actions/node/open-file.lua @@ -3,6 +3,7 @@ local lib = require("nvim-tree.lib") local notify = require("nvim-tree.notify") local utils = require("nvim-tree.utils") local core = require("nvim-tree.core") +local full_name = require("nvim-tree.renderer.components.full-name") local M = {} @@ -40,7 +41,12 @@ local function usable_win_ids() end local win_config = vim.api.nvim_win_get_config(id) - return id ~= tree_winid and win_config.focusable and not win_config.hide and not win_config.external or false + return id ~= tree_winid + and id ~= full_name.popup_win + and win_config.focusable + and not win_config.hide + and not win_config.external + or false end, win_ids) end From 10db6943cb40625941a35235eeb385ffdfbf827a Mon Sep 17 00:00:00 2001 From: alexfinger21 <61606770+alexfinger21@users.noreply.github.com> Date: Sun, 27 Jul 2025 19:42:38 -0400 Subject: [PATCH 3/3] fix(#3077): deleting a directory containing symlinked directory will delete the contents of the linked directory (#3168) * fix(#3077) deleting a directory containing symlink file will delete all content inside the symlink * fix(#3077): add diagnostic override TODO --------- Co-authored-by: Alexander Courtis --- lua/nvim-tree/actions/fs/remove-file.lua | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lua/nvim-tree/actions/fs/remove-file.lua b/lua/nvim-tree/actions/fs/remove-file.lua index fd71ae6a..b4755063 100644 --- a/lua/nvim-tree/actions/fs/remove-file.lua +++ b/lua/nvim-tree/actions/fs/remove-file.lua @@ -71,9 +71,16 @@ local function remove_dir(cwd) -- Type must come from fs_stat and not fs_scandir_next to maintain sshfs compatibility local stat = vim.loop.fs_stat(new_cwd) - local type = stat and stat.type or nil + -- TODO remove once 0.12 is the minimum neovim version + -- path incorrectly specified as an integer, fixed upstream for neovim 0.12 https://github.com/neovim/neovim/pull/33872 + ---@diagnostic disable-next-line: param-type-mismatch + local lstat = vim.loop.fs_lstat(new_cwd) - if type == "directory" then + local type = stat and stat.type or nil + -- Checks if file is a link file to ensure deletion of the symlink instead of the file it points to + local ltype = lstat and lstat.type or nil + + if type == "directory" and ltype ~= "link" then local success = remove_dir(new_cwd) if not success then return false