local levels = vim.diagnostic.severity local opts = { virtual_text = false, float = { border = "rounded", }, signs = { text = { [levels.ERROR] = '✘', [levels.WARN] = '▲', [levels.HINT] = '⚑', [levels.INFO] = '»', }, }, } local sign_define = function(name, text) local hl = 'DiagnosticSign' .. name vim.fn.sign_define(hl, { texthl = hl, text = text, numhl = '' }) end if vim.fn.has('nvim-0.10') == 0 then sign_define('Error', opts.signs.text[levels.ERROR]) sign_define('Warn', opts.signs.text[levels.WARN]) sign_define('Hint', opts.signs.text[levels.HINT]) sign_define('Info', opts.signs.text[levels.INFO]) end vim.cmd [[autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false})]] vim.diagnostic.config(opts)