vim.diagnostic.config({ virtual_text = false, signs = true, underline = false, update_in_insert = false, severity_sort = true, float = { source = "always", -- Or "if_many" }, }) vim.cmd [[ augroup diagnostic_on_hover autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false}) augroup END ]] local signs = { Error = "● ", Warn = "● ", Hint = "● ", Info = "● " } for type, icon in pairs(signs) do local hl = "DiagnosticSign" .. type vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = hl }) end local border = { {"┌", "FloatBorder"}, {"─", "FloatBorder"}, {"┐", "FloatBorder"}, {"│", "FloatBorder"}, {"┘", "FloatBorder"}, {"─", "FloatBorder"}, {"└", "FloatBorder"}, {"│", "FloatBorder"}, } local orig_util_open_floating_preview = vim.lsp.util.open_floating_preview function vim.lsp.util.open_floating_preview(contents, syntax, opts, ...) opts = opts or {} opts.border = opts.border or border return orig_util_open_floating_preview(contents, syntax, opts, ...) end