diff options
Diffstat (limited to '')
| -rw-r--r-- | .vim/plugin/diagnostics.lua | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/.vim/plugin/diagnostics.lua b/.vim/plugin/diagnostics.lua new file mode 100644 index 0000000..70deec3 --- /dev/null +++ b/.vim/plugin/diagnostics.lua @@ -0,0 +1,59 @@ +vim.diagnostic.config({ + signs = { + text = { + [vim.diagnostic.severity.ERROR] = '✗', + [vim.diagnostic.severity.WARN] = '▷', + [vim.diagnostic.severity.INFO] = 'ℹ', + [vim.diagnostic.severity.HINT] = '🞶', + }, + linehl = { + [vim.diagnostic.severity.ERROR] = 'Search', + -- [vim.diagnostic.severity.WARN] = '', + -- [vim.diagnostic.severity.INFO] = '', + -- [vim.diagnostic.severity.HINT] = '', + }, + numhl = { + [vim.diagnostic.severity.ERROR] = 'DiagnosticSignError', + [vim.diagnostic.severity.WARN] = 'DiagnosticSignWarn', + [vim.diagnostic.severity.INFO] = 'DiagnosticSignInfo', + [vim.diagnostic.severity.HINT] = 'DiagnosticSignHint', + }, + }, + underline = { + severity = { min = vim.diagnostic.severity.HINT }, + }, + float = { + severity = { min = vim.diagnostic.severity.HINT }, + }, + virtual_text = { + severity = { min = vim.diagnostic.severity.HINT }, + }, + severity_sort = true, +}) + +local commonhl = { undercurl = true, force = true } +vim.api.nvim_set_hl(0, 'DiagnosticUnderlineError', commonhl) +vim.api.nvim_set_hl(0, 'DiagnosticUnderlineWarn', commonhl) +vim.api.nvim_set_hl(0, 'DiagnosticUnderlineInfo', commonhl) +vim.api.nvim_set_hl(0, 'DiagnosticUnderlineHint', commonhl) + +vim.keymap.set('n', '[d', function() + vim.diagnostic.goto_next() +end, { desc = 'diagnostic: next' }) +vim.keymap.set('n', ']d', function() + vim.diagnostic.goto_prev() +end, { desc = 'diagnostic: prev' }) +vim.keymap.set('n', 'DD', vim.diagnostic.open_float, { desc = 'diagnostic: current line' }) +vim.keymap.set('n', '<leader>td', function() + if not _G.diagnostic_hidden then + -- vim.diagnostic.hide(nil, 0) + vim.diagnostic.config({ virtual_text = false }) + else + -- vim.diagnostic.show(nil, 0) + vim.diagnostic.config({ virtual_text = true }) + end + _G.diagnostic_hidden = not _G.diagnostic_hidden +end, { desc = 'diagnostic: toggle' }) +vim.keymap.set('n', '<leader>tD', function() + vim.diagnostic.enable(not vim.diagnostic.is_enabled()) +end, { desc = 'diagnostic: toggle' }) |