diff --git a/runtime/lua/vim/lsp/_folding_range.lua b/runtime/lua/vim/lsp/_folding_range.lua index 65143e6e50..ac7f0e0b9f 100644 --- a/runtime/lua/vim/lsp/_folding_range.lua +++ b/runtime/lua/vim/lsp/_folding_range.lua @@ -345,7 +345,10 @@ function M.foldclose(kind, winid) local params = { textDocument = util.make_text_document_params(bufnr) } vim.lsp.buf_request_all(bufnr, ms.textDocument_foldingRange, params, function(...) multi_handler(...) - foldclose(kind, winid) + -- Ensure this buffer stays as the current buffer after the async request + if api.nvim_win_get_buf(winid) == bufnr then + foldclose(kind, winid) + end end) end