From 204f38c94764568242750d01bd2ea6870b97a62b Mon Sep 17 00:00:00 2001 From: Oliver Hartmann Date: Mon, 4 Apr 2022 14:46:22 +0200 Subject: [PATCH] Don't show diagnostic windows if there is already a floating window --- lua/setup/lspinstall.lua | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lua/setup/lspinstall.lua b/lua/setup/lspinstall.lua index 977c111..200eb4c 100644 --- a/lua/setup/lspinstall.lua +++ b/lua/setup/lspinstall.lua @@ -18,6 +18,15 @@ capabilities.textDocument.completion.completionItem.resolveSupport = { }, } +OpenDiagFloat = function () + for _, winid in pairs(vim.api.nvim_tabpage_list_wins(0)) do + if vim.api.nvim_win_get_config(winid).zindex then + return + end + end + vim.diagnostic.open_float({focusable = false}) +end + local on_attach = function(client, bufnr) local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) @@ -51,7 +60,7 @@ local on_attach = function(client, bufnr) buf_set_keymap('n', 'v', 'Telescope diagnostics bufnr=0', opts) buf_set_keymap('n', '', ':ClangdSwitchSourceHeader', opts) - vim.cmd([[autocmd CursorHold lua vim.diagnostic.open_float({focusable = false})]]) + vim.cmd([[autocmd CursorHold lua OpenDiagFloat()]]) -- Set some keybinds conditional on server capabilities if client.resolved_capabilities.document_formatting then