From 5c765e75d847702d93f5f1bb8ce581728690ccdd Mon Sep 17 00:00:00 2001 From: chomosuke Date: Tue, 3 Jan 2023 13:08:21 +1300 Subject: [PATCH] fix nvim frozen on no name buffer --- lua/nvim-tree/modified.lua | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lua/nvim-tree/modified.lua b/lua/nvim-tree/modified.lua index eff1a18e9ed..51025e1b22f 100644 --- a/lua/nvim-tree/modified.lua +++ b/lua/nvim-tree/modified.lua @@ -9,10 +9,16 @@ function M.reload() local bufs = vim.fn.getbufinfo { bufmodified = true, buflisted = true } for _, buf in pairs(bufs) do local path = buf.name - M._record[path] = true - while path ~= vim.fn.getcwd() and path ~= "/" do - path = vim.fn.fnamemodify(path, ":h") - M._record[path] = true + if path ~= "" then -- not a [No Name] buffer + -- mark all the parent as modified as well + while + M._record[path] ~= true + -- no need to keep going if already recorded + -- This also prevents an infinite loop + do + M._record[path] = true + path = vim.fn.fnamemodify(path, ":h") + end end end end