diff --git a/lua/config/lsp.lua b/lua/config/lsp.lua index b5fab6a..6273231 100644 --- a/lua/config/lsp.lua +++ b/lua/config/lsp.lua @@ -31,7 +31,19 @@ local custom_attach = function(client, bufnr) source = 'always', -- show source in diagnostic popup window prefix = ' ' } - vim.diagnostic.open_float(nil, opts) + + if not vim.b.diagnostics_pos then + vim.b.diagnostics_pos = { nil, nil } + end + + local cursor_pos = vim.api.nvim_win_get_cursor(0) + if (cursor_pos[1] ~= vim.b.diagnostics_pos[1] or cursor_pos[2] ~= vim.b.diagnostics_pos[2]) and + #vim.diagnostic.get() > 0 + then + vim.diagnostic.open_float(nil, opts) + end + + vim.b.diagnostics_pos = cursor_pos end })