From ffe17ca6fa6aa71244f09777db11ec870fd3b471 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Tue, 23 Jun 2026 19:58:52 +0300 Subject: [PATCH] fix: guard LSP restart against race condition and invalid buffers Signed-off-by: NotAShelf Change-Id: I1ff307bfa381c7517a486a54463765386a6a6964 --- lua/direnv.lua | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/lua/direnv.lua b/lua/direnv.lua index e8b54c0..d6c5975 100644 --- a/lua/direnv.lua +++ b/lua/direnv.lua @@ -329,11 +329,18 @@ M._init = function(path) local bufnr = vim.api.nvim_get_current_buf() local bufname = vim.api.nvim_buf_get_name(bufnr) local clients = vim.lsp.get_clients({ bufnr = bufnr }) - for _, client in ipairs(clients) do - client:stop() - end - if bufname ~= "" then - vim.cmd("edit") + if bufname ~= "" and #clients > 0 then + for _, client in ipairs(clients) do + client:stop() + end + vim.defer_fn(function() + if + vim.api.nvim_buf_is_valid(bufnr) + and vim.api.nvim_buf_get_name(bufnr) ~= "" + then + vim.cmd("edit") + end + end, 500) end end end)