diff --git a/lua/chatgpt_nvim/tools/lsp_robust_diagnostics.lua b/lua/chatgpt_nvim/tools/lsp_robust_diagnostics.lua index 8693c2b..1c6e77c 100644 --- a/lua/chatgpt_nvim/tools/lsp_robust_diagnostics.lua +++ b/lua/chatgpt_nvim/tools/lsp_robust_diagnostics.lua @@ -105,6 +105,7 @@ local function send_did_change(bufnr, client_id) }) end +-- Use vim.wait to allow the event loop to process LSP diagnostics local function wait_for_diagnostics(bufnr, timeout_ms) local done = false local result_diags = {} @@ -121,12 +122,9 @@ local function wait_for_diagnostics(bufnr, timeout_ms) end }) - local waited = 0 - local interval = 50 - while not done and waited < timeout_ms do - vim.cmd(("sleep %d m"):format(interval)) - waited = waited + interval - end + vim.wait(timeout_ms, function() + return done + end, 50) pcall(api.nvim_del_augroup_by_id, augrp) return result_diags